App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.-解决

Posted 写代码是一种艺术,甚于蒙娜丽莎的微笑!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.-解决相关的知识,希望对你有一定的参考价值。

运行环境:Xcode Version 7.3.1 (7D1014)

使用NSURL进行数据请求数据代码:

-(NSData *)requestData{
    NSURL *url = [NSURL URLWithString:@"http://easyread.ph.126.net/seRpubnsz_WwJGz7fexyeg==/7696583593456123398.jpg"];
    NSData *data = [NSData dataWithContentsOfURL:url];
    return data;
}

报错: 

2016-07-04 17:11:44.325 testMultiThread[2904:173072] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app\'s Info.plist file.

原因:Xcode版本的新特性要求App内访问网络请求,要采用 HTTPS 协议。

但是现在公司的项目使用的是 HTTP 协议,使用私有加密方式保证数据安全。现在也不能马上改成 HTTPS 协议传输。

最终找到以下解决办法:

1、在Info.plist中添加 NSAppTransportSecurity 类型 Dictionary ;

在info.plist中添加
<key>NSAppTransportSecurity</key>
<dict>
   <key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

2、在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型Boolean ,值设为 YES;

运行结果:

 

以上是关于App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.-解决的主要内容,如果未能解决你的问题,请参考以下文章

根据 Scheme 修改 App Transport Security

sh 用于在iOS 9中禁用App Transport Security的Bash脚本

我似乎没有找到 App Transport Security,所以我可以暂时禁用它

iOS App 不支持http协议 App Transport Security has blocked a cleartext HTTP (http://)

Xcode 7提示App Transport Security has blocked a cleartext HTTP (http://) resource load的解决办法

App Transport Security has blocked a cleartext HTTP (http://) resource load