当项目设置了 NSExceptionDomains, 不管 NSAllowsArbitraryLoads 是 true/false, NSExceptionDomains 下面 NSExceptionAllowsInsecureHTTPLoads 的值决定了是否允许 http 请求

以阿里云的域名为例, 访问http://aliyuncs.com

以下两种情况允许 http 请求

  1. 允许个别域名 http 请求:
    (1) NSAllowsArbitraryLoads: false,
    (2) NSExceptionDomains内NSExceptionAllowsInsecureHTTPLoads: true
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><flase/><key>NSExceptionDomains</key><dict><key>aliyuncs.com</key><dict><key>NSExceptionAllowsInsecureHTTPLoads</key><true/></dict></dict></dict>
  1. 允许所有 http 请求:
    (1) NSAllowsArbitraryLoads: true
    (2) 不设置NSExceptionDomains
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict>

以下两种情况禁止 http 请求

  1. 禁止个别域名 http 请求:
    (1) NSAllowsArbitraryLoads: true,
    (2) NSExceptionDomains内NSExceptionAllowsInsecureHTTPLoads: false
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/><key>NSExceptionDomains</key><dict><key>aliyuncs.com</key><dict><key>NSExceptionAllowsInsecureHTTPLoads</key><false/></dict></dict></dict>
  1. 禁止所有 http 请求:
    (1) NSAllowsArbitraryLoads: false
    (2) 不设置NSExceptionDomains
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><false/></dict>

总结:
NSExceptionDomains 的作用级别高于 NSAllowsArbitraryLoads
NSExceptionDomains 既可以是白名单, 也可以是黑名单

iOS 允许http请求 关于NSAppTransportSecurity 和 NSExceptionDomains 的关系相关推荐

  1. IOS中http请求使用cookie

    为什么80%的码农都做不了架构师?>>>    一直以为ios的http请求这块很简单应该不支持记录,保存,或者使用cookie,可是想当然归想当然,真用的时候,真研究了一下发现还真 ...

  2. iOS中POST请求

    iOS中POST请求的发送需要使用NSMutableURLRequest可以设置URL request的头字段,比如超时时间,请求类型:GET POST等一些关键头字段: - (IBAction)lo ...

  3. Method-Swizzling实战-实现iOS原生网络请求性能采集

    一.方法交换实现步骤(实例方法和类方法处理逻辑类似) 1.检查原类(要被替换方法的类)的原实例方法是否存在,如果不存在,则不交换: 2.检查新类(最终被使用的方法所在的类)的新实例方法是否存在,如果不 ...

  4. iOS中网络请求的使用(GET请求与POST请求)

    GET&POST GET和POST是两种最常用的与服务器进行交互的HTTP方法 GET 语意是获取指定URL的资源. 将数据按照variable=value的形式,添加到action所指向的U ...

  5. iOS开发——网络请求案例汇总(AFNetworking)

    我在之前一篇博客中实现了使用NSURLConnection或者NSURLSession来请求网络数据,用的都是苹果自带的方法.请参考<iOS开发--网络请求案例汇总>.现在我们使用最流行的 ...

  6. ios获取网络请求失败相关数据

    ios获取网络请求失败相关数据 很多时候和后台处理数据的时候很多时候后台会在网络请求失败的某些不同情况下带回不同的数据这个时候如何获取数据及拿到需要处理的数据: //如果请求失败 对象是NSURLSe ...

  7. 非定向可连接广播(ADV_IND)、扫描请求(SCAN_REQ)、扫描回复(SCAN_RSP)、连接请求(CONNECT_REQ)之间的关系

    1.广播过程 可以看出,在三个广播信道,各广播(ADV_IND)一次. 2.广播与扫描请求.扫描回复之间的关系 可以看出,在从机广播(ADV_IND)的时候,主机发出扫描请求(SCAN_REQ),从机 ...

  8. IOS之https请求认证及双向认证

    一.背景: 苹果从IOS9.0以后就要求使用https,今年发布说的是在2017年1月1日后,所有上架的APP必须使用HTTPS(貌似目前推迟了).不论怎么说,使用https时迟早的事情,之前通过在i ...

  9. 【重读iOS】网络请求2:应用

    基础知识 HTTP基础知识(状态码,请求方法,请求头,cookies) socket/webSocket 系统请求库和开源请求库 缓存系统(LRU LFU) 应用场景:文件上传,断点续传,加密和签名. ...

最新文章

  1. -16 | 12 等于多少
  2. ClickHouse系列教程二:使用航班飞行数据
  3. 商人过河 java_商人过河问题(二)java实现
  4. cad布局教程_CAD制图初学入门之常见的CAD打印设置汇总
  5. PAT (Basic Level) Practice (中文)1011 A+B 和 C (15 分)
  6. [国家集训队]部落战争
  7. 高级软件工程第九次作业:东理三剑客团队作业-随笔4
  8. MIP开发常见问题解答
  9. linux下vi修改文件用法
  10. 为什么采用4~20mA的电流来传输模拟量?(转)
  11. javascript变量作用域一点总结
  12. c语言表达式1 33的值是,2015年计算机二级C语言测试题及答案(1)
  13. Opencv之获取边缘和画轮廓
  14. 05-Vue报错 Uncaught SyntaxError: Identifier has already been declared和路由
  15. B2C电商系统源码 在线商城源码
  16. 史上最全的Android基础教程+入门实战训练+处理技巧(建议收藏)|寻找C站宝藏
  17. flutter-学习之发布安卓包APK
  18. axure 倒计时_Axure倒计时效果
  19. 【牛客】CPU的运算速度与许多因素有关,下面______是提高速度的有效措施?
  20. android免费离线讯飞语音合成

热门文章

  1. mysql 版本问题吗_MySQL各个版本区别及问题总结
  2. 实现上下移动鼠标进入扩展第二个屏幕
  3. 数据传输通信协议总结
  4. [创业之路-55] :总经理与CEO的区别?技术副总VP和首席技术官CTO的区别?
  5. 【Matlab入门】使用内置的函数和常量
  6. Linux-iptables详解
  7. layui - 页面元素
  8. 字符串匹配算法之暴力做法(朴素算法)
  9. 2015北上广深杭平均薪资一览
  10. navicat MySQL 导出数据时出现1577错误解决方法