Как отключить поддержку активности в NSURLConnection?

Есть ли способ заставить NSURLConnection не использовать повторно текущее постоянное соединение, а создать новое?

Я пытаюсь защитить себя от этой известной ошибки проверки активности iOS8

Если iOS 8 получает ответ HTTP с заголовком Keep-Alive, он сохраняет это соединение для повторного использования позже (как и должно), но сохраняет его дольше, чем параметр тайм-аута заголовка Keep-Alive, а затем, когда приходит запрос, он пытается повторно использовать соединение, которое было разорвано сервером.

Я ищу способ решить эту проблему с помощью Objective c, а не со стороны сервера.

Если какие-либо сторонние библиотеки предоставляют способ игнорировать заголовок Keep-alive, это также приветствуется.

Эта проблема отчасти связана со следующими проблемами (1, 2)

Любая помощь приветствуется!


person Durai Amuthan.H    schedule 15.03.2015    source источник


Ответы (1)


Я нашел единственный способ - использовать CFNetwork. API более высокого уровня, например заголовок NSURLConnection или NSURLSession Connection, будет перезаписан системой.

person an0    schedule 20.03.2015
comment
Так что у нас нет возможности отключить его на данный момент. - person Durai Amuthan.H; 21.03.2015
comment
нет возможности установить значение, такое как close для Connection в заголовке HTTP с NSURLSession, iOS просто игнорирует значение и всегда отправляет keep-alive - person Durai Amuthan.H; 21.03.2015
comment
Как я сказал в своем ответе, вы можете использовать API низкого уровня, например CFNetwork. - person an0; 21.03.2015
comment
отклонит ли Apple приложение, если мы воспользуемся этим низкоуровневым API? Можете ли вы поделиться фрагментом рабочего кода? - person Durai Amuthan.H; 21.03.2015
comment
Конечно, не будет отказано. Это публичный API. Код - это не фрагмент, а на самом деле довольно простой, просто устанавливая заголовок Connect. Вам следует прочитать документ. - person an0; 21.03.2015