我有一个接口 ,如果是使用数据流量访问就能正常返回数据,如果是wifi访问就会报错。
通过切换数据流量和wifi的方式测试验证,在微信浏览器中一切正常。
在微信小程序中
1.进入时使用数据流量,切换wifi了 接口还是返回正常数据,(异常情况)
2.进入时使用wifi,断开wifi使用数据流量 接口返回错误。(异常情况)
这时我推测 wx.request中内置的 网络环境监听 与wx.getNetworkType 网络环境监听不一致。
根据图片所示
上方区域 单独使用 数据流量请求接口,接口请求头部 NetType/5G 标识,使用wx.getNetworkType 方法获取当前 网络环境为 5G
下方使用 单独使用 WIFI请求接口 ,接口请求头部居然还是 NetType/5G ,使用wx.getNetworkType 方法获取当前 网络环境为 WIFI
这个wx.request的请求头信息是微信自己带上去的,我猜测我在第一次进入小程序中时,微信将我第一次请求的NetType/5G标识缓存起来了,如果后续当前用户网络环境变更了,这个wx.request中的 请求头信息也是不变的。只有当用户手动移除小程序时或者杀微信进程 才把缓存清除。我期望每次请求都是拿到用户最新的网络环境。
目测和wx.request关系不大
你看下你访问的地址是不是特殊地址? 先用排除法,你是试下直接访问百度也有这个问题吗?
这种一般是地址的问题,要么就是这个地址是IP,要么就是网络环境或者域名的问题
现在情况是,我前端请求前使用wx.getNetworkType打印的 是5G ,服务端查看当前请求是 NetType/WIFI。
跟wx.request 没什么关系,应该跟你的DNS有关,看下报错信息
小程序配置了服务器域名吗