Page 84 - Node.js开发指南
P. 84
76 第 4 章 Node.js 核心模块
http.get(options, callback) http 模块还提供了一个更加简便的方法用于处
理GET请求: http.get。它是 http.request 的简化版,唯一的区别在于http.get
自动将请求方法设为了 GET 请求,同时不需要手动调用 req.end()。
//httpget.js
var http = require('http');
http.get({host: 'www.byvoid.com'}, function(res) {
res.setEncoding('utf8');
res.on('data', function (data) {
console.log(data);
});
});
1. http.ClientRequest
http.ClientRequest 是由 http.request 或 http.get 返回产生的对象,表示一
个已经产生而且正在进行中的 HTTP 请求。它提供一个 response 事件,即 http.request
或 http.get 第二个参数指定的回调函数的绑定对象。我们也可以显式地绑定这个事件的
监听函数:
//httpresponse.js
var http = require('http');
var req = http.get({host: 'www.byvoid.com'});
req.on('response', function(res) {
res.setEncoding('utf8');
res.on('data', function (data) {
console.log(data);
});
});
http.ClientRequest 像 http.ServerResponse 一样也提供了 write 和 end 函
数,用于向服务器发送请求体,通常用于 POST、PUT 等操作。所有写结束以后必须调用 end
函数以通知服务器,否则请求无效。http.ClientRequest 还提供了以下函数。
request.abort():终止正在发送的请求。
request.setTimeout(timeout, [callback]):设置请求超时时间,timeout 为
毫秒数。当请求超时以后,callback 将会被调用。
此外还有request.setNoDelay([noDelay])、request.setSocketKeepAlive
([enable], [initialDelay]) 等函数,具体内容请参见 Node.js 文档。