The resource could not be loaded because the App Transport Security policy requires the use of a secure connection

最近把Xcode升级到最新正式版7.0.1后,发现所有的项目凡是有http请求的都访问失败了,只有https请求的可以访问成功。报错内容如下:

image

Google后查证,iOS9引入了新特性App Transport Security (ATS)

新特性要求App内访问的网络必须使用HTTPS协议。
但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS协议传输。


如果要让ios9支持http访问怎么做呢?我们可以采用如下方式:

  1. 在Info.plist中添加使用 NSAppTransportSecurity类型使用 Dictionary
  2. 在使用NSAppTransportSecurity下添加使用NSAllowsArbitraryLoads类型Boolean,值设为使用YES

最后,修改完后Info.plist的效果图如下:

image

经过修改之后再请求网络,发现就正常了!