使用uniCloud.httpclient.request发送请求一直超时无法获取目标服务器发来的response,但目标服务器实际是正确接收了我的请求而且正确响应了。
之前一直好好地,代码也没动,最近这几天请求:
const res2 = await uniCloud.httpclient.request("http://域名/openApi/doOrder", {
method: "POST",
headers: header,
timeout: 10000,
data: param1,
contentType: 'json',
dataType: 'json'
});
直接报下边的错误:
[uni-pay-co/ac1cc3151753758012105110221/65248ms/ERROR] 异步处理错误: Error: Socket timeout
at Socket.s (/code/index.js:33:35096)
at Socket.emit (node:events:529:35)
at Socket._onTimeout (node:net:598:8)
at listOnTimeout (node:internal/timers:569:17)
at process.processTimers (node:internal/timers:512:7) {
code: 'ERR_SOCKET_TIMEOUT',
timeout: 10500,
name: 'ResponseError',
data: undefined,
path: '/openApi/doOrder',
status: -1,
headers: {},
res: {
status: -1,
statusCode: -1,
statusMessage: null,
headers: {},
size: 0,
aborted: false,
rt: 66998,
keepAliveSocket: false,
data: undefined,
requestUrls: [ 'http://open.yisuopen.com/openApi/doOrder' ],
timing: null,
remoteAddress: '47.106.125.152',
remotePort: 80,
socketHandledRequests: 1,
socketHandledResponses: 0
}
}
为什么我敢断定目标服务器是正确响应了呢,因为和目标服务器技术沟通过,我还是担心,又用postman测试的,一样的数据,postman就能正确响应:
{
"code": 0,
"msg": "成功",
"data": {
"orderNo": "STKD175375971511XXX",
"typeName": "申通快递",
"type": 5,
"waybillNo": "77336913729XXXX"
}
}

IT星空
- 发布:2025-07-29 11:44
- 更新:2025-07-29 14:08
- 阅读:191
IT星空 (作者)
不行,你看下:
[uni-pay-co/ac1cc31f1753786638689-34458/318222ms/ERROR] 异步处理错误: Error: Socket timeout
at Socket.s (/code/index.js:33:35096)
at Socket.emit (node:events:529:35)
at Socket._onTimeout (node:net:598:8)
at listOnTimeout (node:internal/timers:569:17)
at process.processTimers (node:internal/timers:512:7) {
code: 'ERR_SOCKET_TIMEOUT',
timeout: 50500,
name: 'ResponseError',
data: undefined,
path: '/openApi/doOrder',
status: -1,
headers: {},
res: {
status: -1,
statusCode: -1,
statusMessage: null,
headers: {},
size: 0,
aborted: false,
rt: 319639,
keepAliveSocket: false,
data: undefined,
requestUrls: [ 'http://open.yisuopen.com/openApi/doOrder' ],
timing: null,
remoteAddress: '47.106.125.152',
remotePort: 80,
socketHandledRequests: 1,
socketHandledResponses: 0
}
}
2025-07-29 19:10
IT星空 (作者)
目标服务器技术查看响应是正常的,还给我发了:
{"msg":"成功","code":0,"data":{"orderNo":"STKD175371484017253","typeName":"申通快递","type":5,"waybillNo":"773369048475131"}}
我想是不是响应被阿里云服务器拦截了,有没有这种可能?
2025-07-29 19:18
DCloud_uniCloud_VK
回复 IT星空: 你现在在云函数里请求这个接口100%报这个错误吗?
2025-07-29 19:23
IT星空 (作者)
回复 DCloud_uniCloud_VK: 前几天好好地,现在100%报错,我还专门删了uni-pay-co云函数,把nodejs版本改为16又重新上传还是不行。文件是支付模块uni-pay-co的notify目录里的js文件,逻辑是当用户支付成功后调用快递系统的api下单寄快递。
下一步我想把这个下快递功能专门新建一个云函数测试下能否正常,还是不行的话我在用简化版的uniCloud.request方法测试下。
2025-07-29 23:20