var http = require('http');
var options = {
method: 'GET',
host: 'www.google.com',
port: 80,
path: '/index.html'
};
http.request(
options,
function(err, resBody){
console.log("hey");
console.log(resBody);
if (err) {
console.log("YOYO");
return;
}
}
);
由于某些原因,这只是超时,并没有记录任何东西到控制台。节点http.request不做任何事
我知道我可以require('request')
但我需要使用http
与我正在使用的插件兼容。
此外,背景在我的版本:节点是v0.8.2
'你的请求不被发送,直到你调用结束()'不正确的,它只是不_END_的请求,直到然后。尝试写入请求,不要结束并观看'ngrep'。发送请求并随时间将数据写入请求,直到调用'.end()',TCP会话才会关闭。他没有做任何事情的原因是因为没有任何内容写入请求,并且它没有结束,所以节点正在等待知道要发送什么。 – Chad 2013-02-12 22:52:54
确实,你是对的。但服务器将等待回复,直到您调用end()或超时。 – 2013-02-12 22:54:35
取决于响应类型,尝试用他的确切代码写一段没有结束的内容,并观察ngrep上发生了什么。谷歌立即响应,因为该URL不存在,你的应用程序将得到/解析错误响应,然后退出。所有没有你永远打电话结束。我试了一下,看着它发生,因为我怀疑这个假设。我认为这是因为'GET'没有身体,所以如果你打了一个字,他们认为你已经完成了。 – Chad 2013-02-13 01:47:03