HTTP访问info.plist设置相关

参考文章:http://blog.csdn.net/u012947646/article/details/51915985
http://www.csdn.net/article/2015-09-11/2825675

一、访问Http,info.plist操作

开发者可以在App的Info.plist中添加NSAppTransportSecurity的相关配置,用以禁用ATS或者添加白名单,可用的配置参数如下:

  • NSAllowsArbitraryLoads - 设置true即支持所有HTTP请求
  • NSExceptionDomains - 添加白名单
  • NSExceptionMinimumTLSVersion - 白名单指定域名支持的TLS版本
  • NSExceptionRequiresForwardSecrecy - 白名单指定域名是否支持- Forward Secrecy
  • NSExceptionAllowsInsecureHTTPLoads - 白名单指定域名禁用ATS
  • NSThirdPartyExceptionMinimumTLSVersion - 白名单指定第三方服务域名最低支持的TLS版本
  • NSThirdPartyExceptionRequiresForwardSecrecy - 白名单指定第三方服务域名是否支持Forward Secrecy
  • NSThirdPartyExceptionAllowsInsecureHTTPLoads - 白名单指定第三方域名禁用ATS

举个例子:

禁用所有连接使用ATS

在Info.plist中配置禁用ATS:

<key>NSAppTransportSecurity</key>  
  <dict>  
      <key>NSAllowsArbitrary</key>  
      <true/>  
  </dict>  

指定域名禁用ATS

在Info.plist中配置App的服务域名mine.test.com支持HTTP:

<key>NSAppTransportSecurity</key>  
  <dict>  
      <key>NSExceptionDomains</key>  
      <dict>  
          <key>mine.test.com</key>  
          <dict>  
              <key>NSExceptionAllowsInsecureHTTPLoads</key>  
              <false/>  
          </dict>  
      </dict>  
  </dict>  

指定域名修改ATS安全要求

在Info.plist中配置第三方服务third.test.com的TLS1.1及禁用Forward Secrecy:

<key>NSAppTransportSecurity</key>  
  <dict>  
      <key>NSExceptionDomains</key>  
      <dict>  
          <key>mime.test.com</key>  
          <dict>  
              <key>NSExceptionAllowsInsecureHTTPLoads</key>  
              <false/>  
          </dict>  
          <key>third.test.com</key>  
          <dict>  
              <key>NSThirdPartyExceptionMinimumTLSVersion</key>  
              <string>1.1<string/>  
              <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>  
              <false/>  
          </dict>  
      </dict>  
  </dict>  

二、iOS10 AFN能访问https不能访问http问题

出错原理:

NSAllowsArbitraryLoadsNSAllowsArbitraryLoadsInWebContent 同时存在时,根据系统不同,表现的行为也会不一样。简单说,iOS 9 只看 NSAllowsArbitraryLoads,而 iOS 10 会先看 NSAllowsArbitraryLoadsInWebContent
在 iOS 10 中,要是** NSAllowsArbitraryLoadsInWebContent** 存在的话,就忽略掉 NSAllowsArbitraryLoads,如果它不存在,则遵循 NSAllowsArbitraryLoads 的设定。

对比1
对比2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS 10 适配 ATS 一. HTTPS其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTT...
    lanceChris阅读 1,071评论 0 0
  • 很可能你的应用是与一个支持HTTPS传输数据的服务器交互,但是并没有使用TLS 1.2或更高。在这种情况下,你定义...
    Www刘阅读 3,147评论 0 5
  • SSL/TLS协议运行机制的概述:http://blog.csdn.net/xiaofei125145/artic...
    zfl1024阅读 2,295评论 0 5
  • #幸福是需要修出来的~每天进步1%~幸福实修08班~11贾春芬-杭州#20170901(74/99) 【幸福三朵玫...
    chfenj阅读 275评论 0 0
  • It's the duty of the architect to solve the problems inhe...
    何幻阅读 255评论 0 0