我有一個使用節點和請求的應用程序。直到今天,它運轉良好,我不知道爲什麼,但它停止工作。我試圖做一個簡單的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