gpt4 book ai didi

javascript - node.js 中的 GET 请求不起作用

转载 作者:可可西里 更新时间:2023-11-01 17:02:34 27 4
gpt4 key购买 nike

我在通过 Node.js 加载页面时遇到了很大的麻烦。这是我的 Node.js 应用程序的代码,请注意,如果我尝试加载其他资源(如 www.google.com),它会起作用,因此问题特定于域名 www.egopay.com:

 var http = require('http');
var options = {
hostname: 'www.egopay.com',
port: 80,
path: '/',
method: 'GET'
};

var req = http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});

req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});

// write data to request body
req.write('data\n');
req.write('data\n');
req.end();

使用 cURL 可以,Node.js 不行。

请求后大约一分钟出现此错误:

problem with request: read ECONNRESET

最佳答案

当我发出相同的请求,但向 header 添加了一个用户代理时,我得到了一个响应,清楚地表明发生了什么。尝试将此行添加到您的选项中:

headers: {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36'},

基本上,他们有一个 nginx 服务器,可以将您重定向到具有相同 URL 的 HTTPS 站点。如果不包含用户代理就无法获得响应,这可能是该站点的 nginx 部署中的错误。我无法用其他方式解释它,因为我无法在 Chrome 或 Firefox 中重现这种情况。即使用空的用户代理覆盖。我想这是空字符串和未定义字符串之间的区别。 Node 将 header 的字段发送为完全未定义,而我试图与之复制的浏览器仅发送一个空字符串。同样,无法重新创建,但这是我最好的猜测。

关于javascript - node.js 中的 GET 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18599423/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com