我正在使用请求包发布帖子请求。如何在请求时设置超时500毫秒。
var request = require('request');
request({
url: 'myUrl',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'authToken': 'myToken'
},
timeout: 500,
json: infoObj
})
.on('response', function(response) {
console.log('request response=============',response.statusCode)
})
.on('error', function(err) {
console.log('error===',err);
});
尝试使用超时时:500,上面的例子有错误
{错误:ETIMEDOUT 在Timeout._onTimeout(F:\ gomean \ globeone \ node_modules \ request \ request.js:796:17) 在tryOnTimeout(timers.js:224:11) 在Timer.listOnTimeout(timers.js:198:5)代码:' ETIMEDOUT',connect:true}
答案 0 :(得分:0)
申请文件: timeout - 整数,包含在中止请求之前等待服务器发送响应头(并启动响应主体)的毫秒数。
var request = require('request');
request({
url: 'myUrl',
method: 'POST',
timeout: 500,
headers: {
'Content-Type': 'application/json',
'authToken': 'myToken'
},
json: infoObj
})
.on('response', function(response) {
console.log('request response=============',response.statusCode)
})
答案 1 :(得分:-1)
您需要包含一个回调来捕获错误。来自the documentation:
您可以通过检查err.code的“ETIMEDOUT”值来检测超时错误。此外,您可以通过检查err.connect属性是否设置为true来检测超时是否为连接超时。
一个例子:
request.get('http://10.255.255.1', {timeout: 1500}, function(err) {
console.log(err.code === 'ETIMEDOUT');
// Set to `true` if the timeout was a connection timeout, `false` or
// `undefined` otherwise.
console.log(err.connect === true);
process.exit(0);
});