有一个请求,在浏览器地址栏直接访问是没问题的,但是用node的request模块或者http模块访问,就提示ETIMEDOUT,有人遇到过这种情况吗?求指教。
var request = require('request');
var http = require('http');
request.get('http://xxx.xx.xxx.xx:3071/xxx/xxx', (error, response, body) => {
if (error) {
console.log(error);
} else {
console.log(body);
}
})
http.get({
hostname: 'xxx.xx.xxx.xx',
port: '3071',
path: '/xxx/xxx'
}, res => {
console.log(res);
})
request的响应
{ Error: connect ETIMEDOUT xxx.xx.xxx.xx:xxxx
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1087:14)
code: 'ETIMEDOUT',
errno: 'ETIMEDOUT',
syscall: 'connect',
address: 'xxx.xx.xxx.xx',
port: xxxx }
排除网络原因,应该是你访问的地址设置有验证措施比如UA验证、反爬等等,导致服务器拒绝响应你的请求,地址发出来看看,不然也不好测。