我想知道为什么这么简单的http请求不起作用......
http = require("http")
url = "http://nodejs.org/"
console.log "Try a request to #{url}..."
reqHttp = http.request url, (response) ->
console.log "Request to #{url}"
response.on 'data', (chunk) -> console.log "chunk: ", chunk
reqHttp.on 'error', (error) -> console.log "reqHttp error", error
Run Code Online (Sandbox Code Playgroud)
大约一分钟后它返回:
reqHttp error { [Error: socket hang up] code: 'ECONNRESET' }
Run Code Online (Sandbox Code Playgroud)
为了确保它在我的环境中不是问题,我尝试了request模块并且工作正常:
request = require("request")
url = "http://nodejs.org/"
request url, (error, response, body) ->
console.log body if not error and response.statusCode is 200
Run Code Online (Sandbox Code Playgroud)
看来我不是唯一一个.
所以,我有一个解决我的问题的方法(使用request模块),但我想知道为什么我不能使用buind-in http请求.它有缺陷还是不可靠?(Node.js版本0.8.21)
好的,这很简单.你正在构建一个http request但没有完成发送它.从您给出的链接:
req.write('data\n'); //Write some data into request
req.write('data\n');
req.end(); //Finish sending request let request go. Please do this
Run Code Online (Sandbox Code Playgroud)
既然你从未使用过req.end(),它就会挂起,因为它永远不会完成.节点重置非活动请求
reqHttp error { [Error: socket hang up] code: 'ECONNRESET' }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3280 次 |
| 最近记录: |