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粘贴到浏览器中,则很快就能得到结果。

疑惑与不解

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

小怪兽爱吃肉
浏览 1505回答 3
3回答

慕粉1610489134

请问你的code是如何获取的?

千巷猫影

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

汪汪一只猫

网络环境有关。我刚才试了一下秒回啊
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python