问题描述

H5请求api接口,ios可以正常请求,返回200,安卓请求返回0

解决思路

首先我查看了网络请求,发现了初步原因是安卓请求过去返回http状态码是0;

然后继续排查因为是https的原因,且之前正常访问,那么只需要回想下近期变更了那些内容;

如果首次访问就出现了这个原因,那么很可能是https的原因;

我想到了之前变更过https的TLS协议套件,由TLSv1.0、TLSv1.1、TLSv1.2变更成了TLSv1.3,为什么变更,首先不是手欠,是数据局排查下来说不安全,要求只开放TLSv1.3

那么为什么安卓不可以,ios可以,我去查了安卓支持的TLS版本,发现

服务器配置已经可以支持TLS1.0、TLS1.1、TLS1.2,客户端就不需要做任何处理,Android4.x 系统会使用TLS1.0,而 Android 4.4及之上版本会选择TLS 1.2

再次查阅发现,TLSv1.3是2018年发行的,目前市面上支持该协议的不多,主流还是TLS 1.2

解决办法

TLS 1.3=>TLS 1.2