我很会养猪丶 2025-05-27 17:30 采纳率: 100%
浏览 20
已结题

uniapp开发的安卓app,在安卓5.1.1版本下运行通过uni.request无法获取接口数据

uniapp开发的安卓app,在安卓5.1.1版本下运行通过uni.request无法获取接口数据,在手机和平板运行都没有问题,只有在这个安卓5.1.1版本下的安卓设备无法过去接口的数据。有没有同志帮忙解答一下呀!初步猜测可能是DNS解析错误,也有可能是后端的nginx配置的TLS协议不支持

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-05-27 17:30
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    UniApp在安卓5.1.1版本下无法获取接口数据可能是由于安卓5.1.1版本对HTTPS的支持不够导致的。UniApp使用的uni.request方法默认使用HTTPS协议来请求数据,如果安卓5.1.1版本不支持HTTPS,可能会导致请求失败。

    解决方案:

    1. uni.request方法中添加sslVerify参数,并设置为false,以禁用SSL验证:
    uni.request({
      url: 'https://example.com/api/data',
      method: 'GET',
      sslVerify: false,
      success: (res) => {
        console.log(res.data)
      },
      fail: (err) => {
        console.log(err)
      }
    })
    
    1. 如果上述方法不行,可以尝试使用uni.request方法的header参数添加Accept头,以指定请求的数据格式:
    uni.request({
      url: 'https://example.com/api/data',
      method: 'GET',
      header: {
        'Accept': 'application/json'
      },
      success: (res) => {
        console.log(res.data)
      },
      fail: (err) => {
        console.log(err)
      }
    })
    
    1. 如果以上方法都不能解决问题,可以尝试使用uni.request方法的timeout参数设置超时时间,以避免请求超时:
    uni.request({
      url: 'https://example.com/api/data',
      method: 'GET',
      timeout: 30000, // 30秒超时
      success: (res) => {
        console.log(res.data)
      },
      fail: (err) => {
        console.log(err)
      }
    })
    

    如果以上解决方案都不能解决问题,请提供更多的错误信息和日志,以便更好地 debug问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 创建了问题 5月27日