当我在 uniapp 的云函数中使用
const url = "https://xxx.xx.xx"
const res = await uniCloud.httpclient.request(url, {
method: 'GET',
contentType: 'json', // 指定以 application/json 发送 data 内的数据
dataType: 'json', // 指定返回值为 json 格式,自动进行 parse
timeout: 30*1000
})
本地调试完全正常,但是上传云函数时,报错
Error: [addNewsHeNan]: ENOTFOUND:getaddrinfo ENOTFOUND xxx.cn xxx.cn:443, GET https:/xxx -1 (connected: false, keepalive socket: false, agent status: {"createSocketCount":1,"createSocketErrorCount":0,"closeSocketCount":0,"errorSocketCount":1,"timeoutSocketCount":0,"requestCount":0,"freeSockets":{},"sockets":{"xxxx:443:::::::::":1},"requests":{}}, socketHandledRequests: 1, socketHandledResponses: 0)
headers: {}
Error: getaddrinfo ENOTFOUND v.api.aa1.cn v.api.aa1.cn:443
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
url 是一个 API 接口,在浏览器中可直接调用,本地调试也完全正常,但是上传并运行时就会报错,
另: 在写代码时,突然发现顶部不知道什么引入了一个```js import resolve from 'dns'
看到后就删除了,但不知道该问题是否由它引起,这个云函数之前都是能够正常运行的
请教大佬有没有人帮忙看看
1
helone 2022-11-26 18:03:43 +08:00
Error 其实已经很清晰了,getaddrinfo ENOTFOUND v.api.aa1.cn v.api.aa1.cn:443 ,你可以 import resolve from 'dns' 这行加回去试试,我猜大概率是解析域名用的
|
3
eason1874 2022-11-26 18:44:47 +08:00
先确定云函数能不能访问外网,有些厂商的云函数如果开启了 VPC 支持就会默认禁用公网访问,需要再手动开启
|
4
Puteulanus 2022-11-26 18:50:02 +08:00
感觉像云函数没有连公网。。
|
6
sonders OP @Puteulanus 不可能单这一个没连吧
|