这是我参与「第四届青训营 」笔记创作活动的第6天
HTTP客户端
http模块提供了两个函数http.request 和 http.get,功能是作为客户端向HTTP服务器发起请求。
http.request
http.request方法的调用:http.request(options, callback)发起HTTP请求。接受两个参数,option表示请求的参数,callback 是请求的回调函数。option常用的参数如下所示。
host :请求网站的域名或IP地址。
port :请求网站的端口,默认80。
method :请求方法,默认是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 请求尾