Linux curl测试服务器接口请求

一、背景

  获取公众号token接口:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

  为向小程序推送公众号消息,需先调用微信接口获取公众号token,而调用该接口需要添加IP白名单,所以这里需要一种方式来获取调用接口所在服务器的外网IP地址(由于网管外出而且缺少关键日志,也不清楚接口在linux服务器上调用产生了什么异常,这里再改代码重新部署比较麻烦,所以直接通过服务器发起接口请求追查原因)。

二、方案

  使用curl函数请求接口,通过返回数据判断问题原因。

三、测试

#第一次调用,curl+URL无法携带参数,为GET请求
[root@localhost ~]# curl https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
[root@localhost ~]# {"errcode":41002,"errmsg":"appid missing rid: 64ae6747-43a71e2c-4c9520a5"}

#第二次调用,使用POST请求,发现服务器外网IP地址不在公众号IP白名单内
[root@localhost ~]# curl -d "grant_type=client_credential&appid=APPID&secret=APPSECRET" https://api.weixin.qq.com/cgi-bin/token
[root@localhost ~]# {"errcode":10164,"errmsg":"invalid ip 123.88.456.789 ipv6 ::ffff:123.88.456.789,not in whitelist rid:64ae2227-7f0c08c4-1b1c491d"}

#第三次调用,使用POST请求并添加外网IP到公众号IP白名单,接口可以正常获取token
[root@localhost ~]# curl -d "grant_type=client_credential&appid=APPID&secret=APPSECRET" https://api.weixin.qq.com/cgi-bin/token
[root@localhost ~]# {"access_token":"66_u66MuIummMEaCAQmaYgov6MpWYM6GWn6FfEX6HbAZxEHXoeEmxb6ZjrSqhIcOw66YF6-uEetwgGLXy6pXhbfPbnHuNo6c6ZpxirAKsX6Rj66PCSTSgAyCiWC6PAOPCjAFAGHU","express_in":"7200"}

 

posted @ 2023-07-12 16:45  王晓鸣  阅读(280)  评论(0编辑  收藏  举报