request模块 ETIMEDOUT 的问题?

有一个请求,在浏览器地址栏直接访问是没问题的,但是用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 }
阅读 8.9k
3 个回答

排除网络原因,应该是你访问的地址设置有验证措施比如UA验证、反爬等等,导致服务器拒绝响应你的请求,地址发出来看看,不然也不好测。

防火墙屏蔽端口的问题?我也遇到了,正在查

我也遇到这个问题,解决了吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题