小程序在移动4G(安卓、ios机型都存在这个问题)网络下调用request接口频繁fail,联通4g、电信4g正常。公司用的电信宽带,手机连接公司wifi访问小程序也正常。服务器、cdn、ssl证书都用的阿里云的。业务请求顺序是cdn-》slb-》ecs
1、首先怀疑是接口域名证书的问题,看小程序开发文档要求https支持TLS1.2或更高,在myssl.com上检测了下ssl证书没问题。
2、接着排查dns解析、网络问题,用移动4G热点和本地电信wifi分别测试了下接口,连接都正常
这个问题也联系了阿里云的售后,做了移动4g到服务器双边mtr ,包括cdn的测试,确认过网络没问题。在电脑上连接移动4G热点使用开发者工具真机模拟时除了接口请求时间长一些外都能正常访问(电信宽带wifi接口耗时都在几百ms,移动4g热点最慢就到10s左右了),并且单独生成小程序接口地址的二维码,用微信扫描也能正常拿到请求结果,但是线上版的小程序直接就request fail了,现在客户报问题的都有北京、吉林、安徽地区的,请问下可能会是什么原因?
问题解决了,线上版的小程序设置了request全局超时时间为10秒,这个只要用户网络不好,请求超过10秒就会触发
我们是第三方平台,开发模板时项目中有一份ext.json配置文件,给授权方提交代码包时后端会动态生成一份ext.json配置文件覆盖原来的配置,这个超时时间就是在后端生成的配置文件中指定的。开发版使用的本地ext.json没有配置超时时间。
至于4g网络下接口为什么耗时超过10s这是下一步要优化的工作
有3条还是返回很快的,这三条有啥特点吗?还是说只是网络不稳定,要么正常返回,要么超时
最后一张4G热点的图么?那三条涉及的业务逻辑较少一些。不过这不是我问题的重点,我主要想知道为啥线上版直接就fail呢,开发版虽然接口时间长,但是http code码都是200
请求到了服务器的吗?加个按钮wx.setEnableDebug,然后把请求接口的success fail 的返回值都打上,看看走了哪里呢
现在出问题的是线上版,线上版移动4G网络下请求根本就没到服务器,但是我在开发版无法复现这种情况,开发版不管什么网络下每次走的都是success
能联系到出问题的客户吗?可以的话,就加个按钮wx.setEnableDebug,打开vconsole看看打印。。
这个问题公司内的同事就可以复现,这样的话就需要添加一行代码重新提交审核了,我先试试吧,谢了