我需要连接到网页并返回页面的状态代码,这是我使用http.request
实现的,但我需要请求的页面可能需要很长时间,有时需要几分钟,所以我总是收到socket hang up
错误。
到目前为止,我正在使用以下代码:
var reqPage = function(urlString, cb) {
// Resolve the URL
var path = url.parse(urlString);
var req = http.request({
host: path.hostname,
path: path.pathname,
port: 80,
method: 'GET'
});
req.on('end', function() {
cb.call(this, res);
});
req.on('error', function(e) {
winston.error(e.message);
});
};
我需要做些什么来确保我的应用程序仍然尝试连接到该页面,即使它需要几分钟?
答案 0 :(得分:5)
使用request模块并将超时选项设置为适当的值(以毫秒为单位)
var request = require('request')
var url = 'http://www.google.com' // input your url here
// use a timeout value of 10 seconds
var timeoutInMilliseconds = 10*1000
var opts = {
url: url,
timeout: timeoutInMilliseconds
}
request(opts, function (err, res, body) {
if (err) {
console.dir(err)
return
}
var statusCode = res.statusCode
console.log('status code: ' + statusCode)
})
答案 1 :(得分:0)
如果您不想使用更高级别的http客户端,例如request或superagent,请添加此项,然后添加此内容...
req.on("connection", function(socket){
socket.setTimeout((1000*60*5)); //5 mins
});