2015-09-25 128 views
0

我試圖在遠程https服務器上下載或獲取文件。每當其他網址正常工作時,我都會收到以下錯誤消息。ECONNREFUSED錯誤https.request

{ [Error: connect ECONNREFUSED]                                                                       
    code: 'ECONNREFUSED',                                                                         
    errno: 'ECONNREFUSED',                                                                         
    syscall: 'connect' } 

我使用這個代碼:

var https = require('https'); 
var fs  = require('fs'); 

var url = '/portalfront/datafiles/miscellaneous/csv/kursliste_ws.xml'; 
//or:  '/portalfront/datafiles/miscellaneous/csv/kursliste.csv' 
var options = { 
    hostname : 'dnb.no', 
    port  : 443, 
    path  : url, 
    method : 'GET' 
}; 

var req = https.request(options, function(res) { 
    console.log("statusCode: ", res.statusCode); 
    console.log("headers: ", res.headers); 
    res.on('data', function(d) { 
     process.stdout.write(d); 
    }); 
}); 
req.end(); 

req.on('error', function(e) { 
    console.error(e); 
}); 

我可以獲取與郵遞員的URL。

+0

可能的重複http://stackoverflow.com/questions/15929167/node-js-https-get-fires-error-econnrefused – topheman

+0

@topheman它不是你提供的問題的重複。在這種情況下錯誤的主機名。 – ezpn

回答

2

要檢查瀏覽器發送的請求,您可以使用在檢查器中構建。在網卡中,您可以看到所有的請求數據。請求的文件應該在那裏。如果你看一下瀏覽器的請求頭,你會得到類似的結果是:

GET /portalfront/datafiles/miscellaneous/csv/kursliste_ws.xml HTTP/1.1 
Host: www.dnb.no 
Connection: keep-alive 
Cache-Control: max-age=0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Upgrade-Insecure-Requests: 1 
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/45.0.2454.85 Chrome/45.0.2454.85 Safari/537.36 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: en-US,en;q=0.8,pl;q=0.6 
If-None-Match: "5365-5604f43f" 
If-Modified-Since: Fri, 25 Sep 2015 07:14:07 GMT 

如果你仔細觀察,你會看到一個主機的區別。更改主機名來自:

hostname : 'dnb.no', 

到:

hostname : 'www.dnb.no', 

現在你應和能夠成功地檢索XML文件。

相關問題