python通过code获取微信小程序openid的过程速度很慢

问题简述

django为后端,通过前端wx.login()发来的code去微信服务器获取openidsession_key过程耗时太长(15s左右),但通过浏览器直接访问则速度较快。

开发环境

Ubuntu18.04 LTSDjango2.0.8Python3.6.5

相关代码

下面是我建立的一个简单的获取openid的程序:

class WeChatApi():

    def __init__(self, appid, secret):
        self.appid = appid
        self.secret = secret

    def get_openid_and_session_key(self, code):
        import time
        start = time.perf_counter()
        parmas = {
            'appid': self.appid,
            'secret': self.secret,
            'js_code': code,
            'grant_type': 'authorization_code'
        }

        url = 'https://api.weixin.qq.com/sns/jscode2session'
        r = requests.get(url, params=parmas)
        openid = r.json().get('openid', '')
        end = time.perf_counter()
        print('获取openid用时:', end-start, '秒')
        return openid

结果

运行结果:程序正常返回,但是耗时太久,15s左右(已经反复测试)。使用postman测试时,用时相近也大约15s。但是直接把接口url粘贴到浏览器中,则很快就能得到结果。

疑惑与不解

这种现象产生的原因是什么?该如何解决?

阅读 6.1k
2 个回答

这种问题应该是你机器的网络环境原因吧,是不是用了代理之类的,可以把代码放到其他网络环境(比如云主机)去测试

网络环境有关。我刚才试了一下秒回啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题