我正在尝试下载或获取远程https服务器上的文件。每次当其他url工作时,我得到以下错误:
{ [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);
});
我可以用postman获取url。
要检查浏览器发送的请求,可以使用内置检查器。在网卡中可以看到所有的请求数据。请求的文件应该在那里。如果您查看浏览器请求头,您将得到类似的结果:
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文件了。