

小程序server请求微信服务器超时
source link: https://zhuanlan.zhihu.com/p/66420034
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

小程序server请求微信服务器超时
小程序server请求微信服务器超时
今天有同学在测试小程序的过程中,发现一个问题,调用 微信官方的服务端接口超时 ,比如这个接口,https://api.weixin.qq.com/sns/jscode2session
,因为我们小程序登录的时候,会在自己server端调用微信的API,这个接口超时,导致我们的登录流程也就挂掉了。本来以为是偶尔的网络问题,但是,同学发现在测试服务器上,很稳定的复现超时!但是在我们本地测试过程中,请求微信服务器又很快响应。嗯,理论上微信服务器不会出问题的……
试着在服务器上去 curl
微信的接口,确实挺慢的,我们代码里配置了超时是3秒,目测确实超过了3秒才返回!抱着侥幸的想法,让同学把超时改成5秒,依然超时……嗯,略微有点尴尬。
试着 ping api.weixin.qq.com
,发现收到第一个包,隔着挺长时间,后面的包平均几十毫秒,网络应该也没问题吧。
没办法了,因为是服务端,只能用 curl
,想看看这个工具能不能提供一下,整个请求的各个阶段,时间是怎么分布的。搜了一下,还真有这个功能,具体操作如下:
- 在某个目录下,新建一个文件,比如
curl-format.txt
,内容如下:
time_namelookup: %{time_namelookup}\n
time_connect: %{time_connect}\n
time_appconnect: %{time_appconnect}\n
time_pretransfer: %{time_pretransfer}\n
time_redirect: %{time_redirect}\n
time_starttransfer: %{time_starttransfer}\n
----------\n
time_total: %{time_total}\n
- 在同一个目录下,执行
curl
操作:
curl -w "@curl-format.txt" -o /dev/null -s "https://api.weixin.qq.com/sns/jscode2session?xxx=xxx&xx=aa"
拿到的结果如下:

在网上查阅了下,各个字段含义如下(单位都是 秒 ):
- time_namelookup: DNS 域名解析的时候,就是把
https://zhihu.com
转换成 ip 地址的过程 - time_connect: TCP 连接建立的时间,就是三次握手的时间
- time_appconnect: SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间
- time_pretransfer: 从开始到最后一个请求事务的时间
- time_redirect: 从请求开始到响应开始传输的时间
- time_starttransfer: 从请求开始到第一个字节将要传输的时间
- time_total: 这次请求花费的全部时间
从上面截图中可以看出,我们服务器上,在DNS域名解析阶段,就花了 5秒 ,难怪会超时了……
找到了问题,那就先在机器上修改 /etc/hosts
文件,写死一个微信域名的IP解析,暂时 把这个问题修复了。
Recommend
-
140
自从使用Vue2之后,就使用官方推荐的axios的插件来调用API,在使用过程中,如果服务器或者网络不稳定掉包了, 你们该如何处理呢? 下面我给你们分享一下我的经历。 具体原因 最近公司在做一个项目, 服务端数据接口用的是Php输出的API, 有时候在调用的过
-
97
-
46
-
17
记一次网络请求连接超时的事故 | PerfMa应用性能技术社区文章>记一次网络请求连接超时的事故记一次网络请求连接超时的事故
-
5
修改Apache的超时设置,解决长连接请求超时问题 | 张戈博客Jager · 8月13日 · 2016年web 1393次已读某日,组内后台开发找到我,问我们的WEB服务器超时设置是多少。他反馈的问题是,有一个VLAN切换任务cgi...
-
7
V2EX › PHP PHP 请求超时,不晓得具体是哪里的配置? s609926202 · 16 小时 58 分钟前 · 916...
-
11
NFQUEUE机制导致DNS请求5秒超时分析 发表于 2021-12-29...
-
32
V2EX › Python 请问默认状态下 FastAPI 的 GET 请求超时时间是多少? Richard14 · 6 小时...
-
4
排查php中curl请求超时问题 2016-09-18 php 1515 次阅读 一个项目需要抓取一些网页数据,使用的是php中的curl扩展,模拟浏览器行为,通过http协议请求web数...
-
7
通过http库控制请求超时来一窥context的使用 2022-09-04 Go...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK