我正在尝试使用axios
访问此API,但出现错误
状态: 429 [请求过多] 。
我只发送了一个仍然出错的请求。
但是,当我尝试使用邮递员访问此URL时,它仍然有效。
axios
.post(
`https://www.expedia.com/Hotel-Search-Data?responsive=true&destination=New+York%2C+New+York&latLong=40.75668%2C-73.98647®ionId=178293&startDate=01%2F20%2F2019&endDate=01%2F21%2F2019&rooms=1&adults=2&timezoneOffset=19800000&langid=1033&hsrIdentifier=HSR&page=7`
)
.then(result => {
console.log(result.data);
})
.catch(err => {
console.log(err);
});
答案 0 :(得分:0)
我遇到了同样的问题,这是因为请求过多。
您可能正在某个循环内运行上述行,这导致此发生,因为Axios同时触发所有请求。
解决方法是等待,就像这样
get()
请注意,上面的代码必须位于异步函数中。
答案 1 :(得分:0)
使用retry-axios
:
const axios = require('axios');
const retry = require('retry-axios');
const params = {
responsive: true,
destination: 'New+York%2C+New+York',
latLong: '40.75668%2C-73.98647',
regionId: 178293,
startDate: '01%2F20%2F2019',
endDate: '01%2F21%2F2019', rooms: 1,
adults: 2,
timezoneOffset: 19800000,
langid: 1033,
hsrIdentifier: 'HSR',
page: 7
}
const raxConfig = {
backoffType: 'exponential',
onRetryAttempt: (err) => {
const cfg = rax.getConfig(err);
const status = err.response.status;
console.log(`? [${status}] Retry attempt #${cfg.currentRetryAttempt}`);
}
}
axios
.post(
'https://www.expedia.com/Hotel-Search-Data',
{},
{
params,
raxConfig,
}
)
.then(result => {
console.log(result.data);
})
.catch(err => {
console.log(err);
});