调用他人平台的http接口,有时会报socket hang up,求教
如题,本人使用的是axios这个库,request库也有尝试,也会报该错误(socket hang up);
该错误经常出现在调用高峰期;
本人也做了相关调查,这个问题貌似主要是网络问题和他人服务器问题,不太确定到底是什么问题?
我服务器是阿里云的,而且我没有启用多核,因为是使用消息队列,所以请求也是单条单条发送的,调用高峰期频率比较快,就会出现该问题,求教
代码如下:
const axios = require('axios');
const qs = require('querystring');
const http = require('http');
/***省略***/
let result = yield axios.post(`/${url}`, qs.stringify({ json: json }), {
timeout: 20000,
httpAgent: new http.Agent({ keepAlive: true }),
baseURL: api,
headers: {
'Content-Type':'application/x-www-form-urlencoded',
'Content-Length': qs.stringify({ json: json}).length
}
});
3 回复
问题已找到,他人平台的服务器超负荷了
@wlpeter 如果 http.Agent 没有收到任何服务端的数据体而服务端又直接断开了 tcp 连接 ,那么会报出 socket hang up 错误
@leavesdrift 谢谢