当发送多个POST请求时,可能会遇到“socket hang up”错误。这是因为默认情况下,Node.js的http和https模块在短时间内不能同时发送多个请求。以下是解决这个问题的方法:
const axios = require('axios');
const requests = [
axios.post('https://example.com/api/endpoint1', { data: 'data1' }),
axios.post('https://example.com/api/endpoint2', { data: 'data2' }),
axios.post('https://example.com/api/endpoint3', { data: 'data3' }),
];
axios.all(requests)
.then(axios.spread((response1, response2, response3) => {
// 处理每个请求的响应
console.log(response1.data);
console.log(response2.data);
console.log(response3.data);
}))
.catch(error => {
// 处理错误
console.error(error);
});
const axios = require('axios');
function sendRequests(requests, index = 0) {
if (index >= requests.length) {
// 所有请求已完成
return;
}
axios.post(requests[index].url, requests[index].data)
.then(response => {
// 处理响应
console.log(response.data);
// 发送下一个请求
sendRequests(requests, index + 1);
})
.catch(error => {
// 处理错误
console.error(error);
// 发送下一个请求
sendRequests(requests, index + 1);
});
}
const requests = [
{ url: 'https://example.com/api/endpoint1', data: { data: 'data1' } },
{ url: 'https://example.com/api/endpoint2', data: { data: 'data2' } },
{ url: 'https://example.com/api/endpoint3', data: { data: 'data3' } },
];
sendRequests(requests);
这些示例代码演示了如何使用axios发送多个POST请求并处理响应。根据具体情况选择适合的方法来解决“socket hang up”错误。