uniapp请求报错

uniapp 真机调试安卓10以下调用https请求报错
"errMsg": "request:fail abort statusCode:-1 Handshake failed"
sslVerify设置为false也是无效果

局域网还是公网测试报错?

这个错误提示表明 SSL 握手失败,这可能是由于 SSL 证书问题导致的。
在默认情况下,Uniapp 在使用 HTTPS 协议进行网络请求时会验证 SSL 证书。如果 SSL 证书无效或不匹配,Uniapp 将拒绝建立连接并返回错误。您可以尝试以下方法解决此问题:

  1. 确认 SSL 证书是否有效:请确保您正在连接的服务器使用的 SSL 证书有效,未过期且已正确安装。
  2. 设置请求头部:您可以尝试在请求头部中设置 'Accept-Encoding': 'identity',以避免服务器进行压缩,从而导致 SSL 握手失败。示例代码如下:
uni.request({
  url: 'https://example.com/api',
  method: 'POST',
  header: {
    'Accept-Encoding': 'identity' // 设置请求头部
  },
  success: function (res) {
    console.log(res.data);
  }
});
  1. 禁用 SSL 证书验证:在您确定服务器是可信的情况下,您可以选择禁用 SSL 证书验证。在 uni.request() 函数中,您可以将 sslVerify 参数设置为 false 来禁用 SSL 证书验证,例如:
uni.request({
  url: 'https://example.com/api',
  method: 'POST',
  sslVerify: false, // 禁用 SSL 证书验证
  success: function (res) {
    console.log(res.data);
  }
});

但是需要注意的是,禁用 SSL 证书验证会使得请求变得不安全,因为这会让您的应用程序容易受到中间人攻击,从而泄漏敏感信息。因此,如果可能,请尽量避免禁用 SSL 证书验证。