Nodejs:http模块

98 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第6天

HTTP客户端

http模块提供了两个函数http.request 和 http.get,功能是作为客户端向HTTP服务器发起请求。

http.request

http.request方法的调用:http.request(options, callback)发起HTTP请求。接受两个参数,option表示请求的参数,callback 是请求的回调函数。option常用的参数如下所示。

host :请求网站的域名或IP地址。

port :请求网站的端口,默认80method :请求方法,默认是GET。path :请求的相对于根的路径,默认是“/”。QueryString 应该包含在其中。例如/search?query=byvoid。

headers:一个关联数组对象,为请求头的内容。

callback 传递一个参数,为http.clientResponse的实例。http.request返回一个http.ClientRequest 的实例。

http.get

http 模块提供了一个更加简便的方法用于处理GET请求: http.get。它与http.request的区别在于http.get自动将请求方法设为了GET请求,同时不需要手动调用req.end()。调用方式:http.get(options, callback);

http.ClientRequest

http.clientRequest 是由http.request或http.get返回产生的对象,
表示一个已经产生而且正在进行中的HTTP请求。它提供一个response 事件,
即http.request或http.get第二个参数指定的回调陋数的绑定对象。
我们也可以显式地绑定这个事件的监听函数:

http.clientRequest 像 http.serverResponse 一样也提供了 write 和 end 数,用于向服务器发送请求体,通常用于POST、PUT等操作。所有写结束以后必须调用end两数以通知服务器,否则请求无效。

http.clientRequest还提供了以下丽数。

request.abort():终止正在发送的请求。

request.setTimeout (timeout, [callback]):设置请求超时时间,timeout为毫秒数。当请求超时以后,callback 将会被调用。

http.ClientResponse

http.ClientResponse,提供了三个事件data、end和 close,分别在数据到达、传输结束和连接结束时触发,

data事件在数据到达时触发,参数chunk表示接受到的数据。

end事件在传输结束的时候出发。

close事件在连接结束的时候触发。

http.ClientResponse 也提供了一些属性,用于表示请求的结果状态,

statusCode:HTTP状态码,如200、404、500

httpVersionHTTP协议版本,通常是1.0或1.1

headers:HTTP请求头

trailers:HTTP 请求尾