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 文档。
   79   80   81   82   83   84   85   86   87   88   89