How to disable keepalive in NSURLConnection?

2019-02-25 03:54发布

问题:

Is there any way to force NSURLConnection to not reuse the current persistent connection but to create a new one ?

I am trying to defend myself from this known iOS8 keep-alive bug

If iOS 8 receives a HTTP response with a Keep-Alive header, it keeps this connection to re-use later (as it should), but it keeps it for more than the timeout parameter of the Keep-Alive header and then when a second request comes it tries to re-use a connection that has been dropped by the server.

I am looking for a way to solve this issue from Objective c rather than solving from server side.

If any third party libraries provides a way to ignore Keep-alive header then its also welcome.

This issue is somewhat related to following issues(1,2)

Any help is appreciated !

回答1:

The only way I found is to use CFNetwork. Higher level API such as NSURLConnection or NSURLSession's Connection header will be overwritten by system.