如何在连接丢弃时配置NSURLSession请求的重试尝试?

时间:2016-08-07 14:46:13

标签: ios networking nsurlsession charles-proxy

我正在使用NSURLSession进行网络连接。在带有连接丢弃的Charlesproxy中进行测试表明,实际上有三个请求正在发送,而不是一个。

看起来它是一种NSURLSession低级工作 - 如果它确定连接丢弃,它会在确定没有网络并且调用委托/块失败之前实际发送多个请求。

为了证明我的假设,我将NSURLSessionConfiguration从defaultSessionConfiguration更改为backgroundSessionConfigurationWithIdentifier,并在调用delegate / block之前开始发送更多请求(4)。

在我看来,这不是一个问题,只是想知道它是否可以以某种方式配置。

1 个答案:

答案 0 :(得分:1)

我认为您所看到的是NSURLSession工作方式的工件。它:

  • 同时与主机建立IPv4和IPv6连接。
  • 使用第一个成功打开的连接,立即关闭另一个连接。
  • 失败后,告诉Reachability是否可以访问任何其他服务器(例如apple.com)以确定要发回的错误代码。

AFAIK,这些都不是可配置的,AFAIK。