iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL。采用TLS 1.2 协议,目的是 强制增强数据访问安全,而且 系统 Foundation 框架下的相关网络请求,将不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2。服务器因此需要更新,以解析相关数据。如不更新,可通过在 Info.plist 中声明,倒退回不安全的网络请求。
解决方案如下:
方案一:
方案一:立即让公司的服务端升级使用TLS 1.2
方案二:虽Apple不建议,但可通过在 Info.plist 中声明,倒退回不安全的网络请求依然能让App访问指定http,甚至任意的http,如下
//方法一,彻底倒退回不安全的HTTP网络请求,能任意进行HTTP请求(不建议这么做)
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
//方法二 ,
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourserver.com</key>
<dict>
<!--允许子域名:subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--允许App进行不安全的HTTP请求-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--在这里声明所支持的TLS最低版本-->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
##################如何在info.plist中设置
第一步:找到主目录下得info.plist
第二步:双击点出目录如下
打开后会看到xml格式的代码如下
第三步:将适配iOS9的网络代码发到xml文件中如图即可
iOS9系统强制使用TLS 1.2 SSL,导致HTTP请求无法正常工作。为解决此问题,开发者有两种方案:一是升级服务端至TLS 1.2;二是通过Info.plist配置允许不安全的网络请求。本文提供了详细的操作步骤和代码示例。
2216

被折叠的 条评论
为什么被折叠?



