getaddrinfo ENOTFOUND https://api.weixin.qq.com https://api.weixin.qq.com:443

今天做一个request请求。请求创建菜单。得到如下错误:

error

getaddrinfo ENOTFOUND

问题原因

这是由于你当前的主机不能够连接到你填写的url,

解决方案:

1.ping你出现问题的主机:api.weixin.qq.com

2.查看是否可以ping桶,如果ping不通,但是其他网站又ping的通,很可能是代理的问题或者输入url的原因,注意ping的时候不要加http/https方案。

3.如果ping的通,查看你的代码的option配置:

例如我的:

var data = "";
    var options = {
        protocol:'https:',
        host:'https://api.weixin.qq.com',
        port:443,
        path:'/cgi-bin/menu/create?access_token='+access_token,
        method:'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Content-Length': Buffer.byteLength(strMenus)
        }
    }
    var req = https.request(options,(res)=>{
        res.on('data',(chunk)=>{
            data+=chunk;
        })
        res.on('end',()=>{
            var message = JSON.parse(data);
        })
    })

    req.on('error',(e)=>{
        console.log(e);
    })

    req.write(strMenus);
    req.end();

发现错误是应该把https去掉,在微信的官方文档中有:

在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的开发者中心页配置授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头;

我将https去掉后,神奇的就好了。

var options = {
        protocol:'https:',
        host:'api.weixin.qq.com',
        port:443,
        path:'/cgi-bin/menu/create?access_token='+access_token,
        method:'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Content-Length': Buffer.byteLength(strMenus)
        }
    }

ok

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值