Axios经常返回ECONNREFUSED,而CURL工作正常



我在这里读过很多主题,但没有任何相同的帮助。我的问题是在使用axios.all时经常出现ECONNREFUSED错误。。nodejs上的get(在50%的get请求中(。同时,卷曲效果很好。这在我的js代码中:

const axios = require('axios');
async function makeGetRequest () {
let config = {
headers: {"User-Agent": 'curl/7.64.1'}
};
try {
const [BYN, RUR] = await axios.all([
axios.get('https://www.nbrb.by/api/exrates/rates/145', config),
axios.get('https://www.nbrb.by/api/exrates/rates/298', config),
]);
return [BYN.data, RUR.data];

} catch(error) {
return error
}
}
makeGetRequest().then((value) => {
console.log("VAL: ", value)
})

正如你所看到的,我试图操纵头部来模仿curl,但这不起作用。命令:curl https://www.nbrb.by/api/exrates/rates/145工作良好。但我需要我的盖茨比网站的SSR响应。

错误:经济融合是潜在的HTTP协议连接错误,这意味着HTTP服务器没有接受您的连接。

也许这根本不是你的代码的问题,你只需要确保你试图调用API的web服务器允许的费率和代理。

正如self-agency所评论的,您可能达到了每秒请求的最大速率,而IMO很可能是您的情况,因为您正在发送2个并发请求。

因此,请尝试以下操作:

const axios = require("axios");
async function makeGetRequest() {
let config = {
headers: { "User-Agent": "curl/7.64.1" }
};

try {
const BYN = await axios.get(
"https://www.nbrb.by/api/exrates/rates/145",
config
);

const RUR = await axios.get("https://www.nbrb.by/api/exrates/rates/298", config);

return [BYN.data, RUR.data];

} catch (error) {
return error;

}

}
makeGetRequest().then(value => {
console.log("VAL: ", value);
});

这样一来,你一次只会处理一个请求,所以你可能会绕过费率限制。顺便说一句,这对于免费模式API来说非常常见,它们希望您付费以利用您的使用。

最新更新