【问题标题】:How do I find out which HTTP requests are being blocked by App Transport Security?如何找出 App Transport Security 阻止了哪些 HTTP 请求?
【发布时间】:2015-12-11 15:31:48
【问题描述】:

我从this question 知道,我可以将我知道它将发出非 HTTPS 请求的域列入白名单。

但是,在将几个域列入白名单后,我注意到仍然有一些请求被NSURLRequest 阻止,有没有办法找出哪些域被它阻止了?

【问题讨论】:

    标签: ios nsurl ios9 app-transport-security


    【解决方案1】:

    http请求不会被阻塞,它们会自动变成https请求。要找出被阻止的内容,请在您的代码中设置一个断点,以便报告连接错误。

    【讨论】:

    • 技术上是正确的,但是如果服务器不支持 HTTPS(或者如果 HTTPS 为不同的域提供内容并且不支持 SNI),则差异纯粹是学术性的。
    • 这是服务器的功能,不是客户端的。
    【解决方案2】:

    如果您正在发出请求,请修改您的 connection:didFailWithError: 方法并打印失败的 URL。

    如果某个第三方库发出请求,请将 CFNETWORK_DIAGNOSTICS 环境变量设置为 1(或 2 或 3)。

    【讨论】:

      猜你喜欢
      • 2016-01-24
      • 2016-04-17
      • 2018-12-24
      • 2016-11-26
      • 2015-11-30
      • 2015-12-15
      • 2016-03-21
      • 2015-12-18
      • 1970-01-01
      相关资源
      最近更新 更多