我正在尝试在远程https服务器上下载或获取文件。每次其他网址正常工作时,我都会收到以下错误。
{ [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);
});
我可以用邮递员获取网址。
答案 0 :(得分: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文件。