这几天公司app开发后期阶段,爆出来好多关于网络的问题,比如服务器不是HTTPS、iOS10上面轮播图播不出来、自签名HTTPS网页加载失败的情况(新浪支付,没错就是新浪支付),为了解决这个问题搜集了好多资料所以想一一列出来,做个笔记
1 、HTTPS图片加载不出来
项目里面使用的是SDWebImage,其实SDWebImage里面有方法进行适配了
调用下面方法,options参数可以设置为SDWebImageAllowInvalidSSLCertificates
2、自签名UIWebView加载不出来
iOS的ATS规则网上有很多详细的资料,你可以随心所欲的设置:完全禁用ATS、部分禁用ATS、部分使用ATS、完全使用ATS...
但是我设置了禁用ATS之后发现UIWebView仍然会显示加载失败并且报错
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802);
搜了好多资料,大概有几种解决方案 [私有API, NSURLConnection , NSURLSession]
前两种就不说了,网上资料有很多,我也是都一一试过了,能用但是有问题
私有API会被拒,NSURLConnection又已经被弃用
所以去搜了一下如何用NSURLSession信任网站的证书,搜出来的资料好像并不是很多也不全,所以只好科学上网查了查资料
用法也好简单
和NSURLConnection使用步骤是一样的,只不过一个代理方法搞定,我是在代理方法回掉之后延迟了一小会儿执行重新加载步骤的,暂时不太确定有没有问题,如果有更合适的位置做操作,请帮忙纠正
更新问题:证书明明支持了TLS1.2但是在运行时却报错的问题 -> 时间设置 时间设置 时间设置
重要的事情说三遍!
最后贴出来资料的链接