收藏
回答

wx.request 方法判断当前网络环境有问题?

我有一个接口 ,如果是使用数据流量访问就能正常返回数据,如果是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中的 请求头信息也是不变的。只有当用户手动移除小程序时或者杀微信进程 才把缓存清除。我期望每次请求都是拿到用户最新的网络环境。



最后一次编辑于  2023-03-21
回答关注问题邀请回答
收藏

3 个回答

  • 游戏人生
    游戏人生
    2023-03-21

    目测和wx.request关系不大

    你看下你访问的地址是不是特殊地址? 先用排除法,你是试下直接访问百度也有这个问题吗?

    这种一般是地址的问题,要么就是这个地址是IP,要么就是网络环境或者域名的问题

    2023-03-21
    有用 1
    回复 1
    • 历史是个圈
      历史是个圈
      2023-03-21
      我访问的接口是自己开发的接口,我对这个接口做了限制,每次访问我会先去截取useragent ,如果是NetType/WIFI就返回报错。
      现在情况是,我前端请求前使用wx.getNetworkType打印的 是5G ,服务端查看当前请求是 NetType/WIFI。
      2023-03-21
      回复
  • showms
    showms
    2023-03-21

    跟wx.request 没什么关系,应该跟你的DNS有关,看下报错信息

    2023-03-21
    有用
    回复
  • Mr.luo
    Mr.luo
    2023-03-21

    小程序配置了服务器域名吗

    2023-03-21
    有用
    回复 1
    • 历史是个圈
      历史是个圈
      2023-03-21
      配置了。
      2023-03-21
      回复
登录 后发表内容