У меня возникла странная проблема, когда я использую свой API из своего приложения. Иногда, по какой-либо причине, запрос просто не отправляется, и он не работает в конце тайм-аута со следующей ошибкой:
Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."
Я пробовал много API, таких как NSURLConnection
делегаты, NSURLSession
и NSURLConnection.sendSynchronousRequest
без успеха.
Вот пример проекта, который я сделал, чтобы выделить проблему. ConnectionBugApp
Вот шаги для воспроизведения:
- Запустите приложение в Xcode и остановите отладку, чтобы приложение было на вашем телефоне.
- Откройте приложение, нажмите "Проверить соединение" (он преуспевает, загрузка колес останавливается сразу после).
- Перейдите в другие приложения, такие как facebook/twitter/сетевые игры (некоторые из которых немного тяжелы) и несколько раз переключайтесь в режим самолета
- Вернитесь к моему приложению и нажмите "Проверить соединение" (загрузочное колесо никогда не останавливается)
Несколько деталей, которые могут помочь:
-
Если я использую свой IP-адрес сервера вместо моего имени домена, он преуспевает
-
Проблема возникает только в сети LTE/4G.
Любые идеи или обходные пути были бы высоко оценены! Не стесняйтесь спрашивать подробности.
Спасибо
ИЗМЕНИТЬ
Я отредактировал описание с тех пор, как я впервые разместил его (надеясь сделать его более чистым и понятным), извините, если некоторые ответы или комментарии больше не имеют смысла.