我有一个使用node和request的应用程序。它一直工作得很好,直到今天,我不知道为什么,但它停止工作。我试图对一个特定的页面执行一个简单的request.get(),它向我发送了一个超时错误,但是lib试图访问的地址与远程地址不同。由于某些原因,节点请求似乎没有将url转换为适当的ip。
请求调用:
request.get({
url: 'http://www.website.to.request.com:8000/login.aspx',
headers: headers,
}节点错误消息:
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"chrome调试中的请求:
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注意:如果我尝试访问:201.11.11.111:8000/login.aspx,它可以工作,但使用200.200.00.00:8000不能工作。
如果我尝试使用https://www.hurl.it/并传递url和content-type来获取页面内容;
有人知道这个请求是错的吗??
发布于 2017-04-03 15:07:15
你可以尝试在requestjs调用之前硬编码一个DNS请求,然后你可以用你得到的ip来设置请求url。
这是可以用来执行DNS查找的api:https://nodejs.org/api/dns.html
请记住,您可以使用dns.setServers来硬编码一些dns服务器('8.8.8.8','8.8.4.4‘用于google DNS)
https://stackoverflow.com/questions/43147087
复制相似问题