我在这里读过很多主题,但没有任何相同的帮助。我的问题是在使用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来说非常常见,它们希望您付费以利用您的使用。