我有一个使用节点和请求的应用程序。直到今天,它运转良好,我不知道为什么,但它停止工作。我试图做一个简单的request.get()到一个特定的页面,它发送给我一个超时错误,但lib尝试访问的地址与远程地址不同。由于某种原因,似乎node-request没有将url转换为正确的ip。node-request ip addres与远程ip地址不同
请求调用:
request.get({
url: 'http://www.website.to.request.com:8000/login.aspx',
headers: headers,
}
节点错误消息:
Request URL:http://www.website.to.request.com:8000/login.aspx
Request Method:GET
Status Code:200 OK
Remote Address:201.11.11.111:8000
Referrer Policy:no-referrer-when-downgrade
注:
address:"200.200.00.00"
code:"ETIMEDOUT"
errno:"ETIMEDOUT"
message:"connect ETIMEDOUT 200.200.00.00:8000"
port:8000
stack:"Error: connect ETIMEDOUT 200.200.00.00:8000
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)" syscall:"connect"
铬调试请求。如果我试图访问:201.11.11.111:8000/login.aspx
它的工作原理,但与200.200.00.00:8000
不起作用。
如果我尝试使用https://www.hurl.it/获取页面内容并传递url和content-type作品;
有人知道这个请求是错误的吗?
主机名是否解析为多个IP号码,其中一个无法访问? – robertklep
由于chromes debug显示主机名称应该解析为201.11.11.111:8000。但节点请求解析为200.200.00.00:8000。似乎来自某处的缓存。如果我将'request.get({url:'http://www.website.to.request.com:8000/login.aspx']'request.get({url:http://201.11 .11.111:8000/login.aspx''它可以工作,但我不想让ip硬编码。 – Aleph
错误信息中提到的那个端口8072是什么?你配置了一个代理吗?如果你使用Linux或者macOS,'host www.website.to.request.com'返回的是什么? – robertklep