V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sonders
V2EX  ›  问与答

云函数调用第三方 API 问题

  •  
  •   sonders · 2022-11-26 17:34:40 +08:00 · 1018 次点击
    这是一个创建于 746 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当我在 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'

    看到后就删除了,但不知道该问题是否由它引起,这个云函数之前都是能够正常运行的
    
    请教大佬有没有人帮忙看看
    6 条回复    2022-11-26 20:05:11 +08:00
    helone
        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' 这行加回去试试,我猜大概率是解析域名用的
    sonders
        2
    sonders  
    OP
       2022-11-26 18:37:11 +08:00
    @helone 可是在之前的代码里并没有这个引用,这个应该是代码自动提示导致自动引入的,我引入之后反而报错了
    eason1874
        3
    eason1874  
       2022-11-26 18:44:47 +08:00
    先确定云函数能不能访问外网,有些厂商的云函数如果开启了 VPC 支持就会默认禁用公网访问,需要再手动开启
    Puteulanus
        4
    Puteulanus  
       2022-11-26 18:50:02 +08:00
    感觉像云函数没有连公网。。
    sonders
        5
    sonders  
    OP
       2022-11-26 20:04:44 +08:00 via Android
    @eason1874 其他云函数也有访问第三方 api 的,都是正常的
    sonders
        6
    sonders  
    OP
       2022-11-26 20:05:11 +08:00 via Android
    @Puteulanus 不可能单这一个没连吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3183 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 05:02 · PVG 13:02 · LAX 21:02 · JFK 00:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.