Я начал использовать ASIHTTPRequest в своем проекте iOS для выполнения вызовов методов REST-сервера и до сих пор преуспел в этом. У меня просто есть одна странная прерывистая проблема. Очень редко я получаю следующий ответ от использования [ASIHTTPRequest startAsynchronous] :
HTTP/0.9 200 OK
Когда это происходит, мой серверный метод не вызывается. Обычно каждый вызов метода возвращает ответ, начинающийся с «HTTP/1.1». Я использую HTTPS с сертификатом GeoTrust/RapidSSL для защиты соединения. Интересно, что я обнаружил, что получаю тот же ответ «HTTP/0.9 200 OK», если пытаюсь подключиться к порту SSL (443), но указываю «http» в качестве протокола.
Просто добавим больше информации: проблема в основном возникает после того, как приложение не используется в течение определенного периода времени. Например. запрос завершается успешно, затем оставьте приложение на некоторое время бездействующим, затем при следующем запросе возникает проблема, после чего приложение продолжает работать нормально.
Кто-нибудь может пролить свет на происходящее?
Большое спасибо, Джонатан
ОБНОВЛЕНИЕ: я вставил ниже некоторую отладочную информацию, выводимую ASIHTTPRequest, когда возникла проблема:
2012-07-12 09:35:49.376 mytestapp[3038:18f07] [CONNECTION] Closing connection #13 because it has expired
2012-07-12 09:35:49.377 mytestapp[3038:18f07] [CONNECTION] Closing connection #14 because it has expired
2012-07-12 09:35:49.378 mytestapp[3038:18f07] [CONNECTION] Closing connection #15 because it has expired
2012-07-12 09:35:49.380 mytestapp[3038:18f07] [CONNECTION] Request #39 will use connection #16
2012-07-12 09:35:49.381 mytestapp[3038:18f07] [CONNECTION] Request #40 will use connection #17
2012-07-12 09:35:49.382 mytestapp[3038:18f07] [CONNECTION] Request #41 will use connection #18
2012-07-12 09:35:49.529 mytestapp[3038:18f07] [STATUS] Request <ASIHTTPRequest: 0x88a1e00> finished downloading data (0 bytes)
2012-07-12 09:35:49.529 mytestapp[3038:18f07] [STATUS] Request <ASIHTTPRequest: 0x88a1e00> received response headers
2012-07-12 09:35:49.530 mytestapp[3038:18f07] [AUTH] Request <ASIHTTPRequest: 0x88a1e00> has passed Basic authentication
2012-07-12 09:35:49.530 mytestapp[3038:18f07] [CONNECTION] Got no keep-alive header, will keep this connection open for 60.000000 seconds
2012-07-12 09:35:49.530 mytestapp[3038:18f07] [CONNECTION] Request #41 finished using connection #18
2012-07-12 09:35:49.531 mytestapp[3038:18f07] [STATUS] Request finished: <ASIHTTPRequest: 0x88a1e00>
2012-07-12 09:35:49.531 mytestapp[3038:15803] responseHeaders={
}
2012-07-12 09:35:49.531 mytestapp[3038:18f07] [STATUS] Request cancelled: <ASIHTTPRequest: 0x88a1e00>
2012-07-12 09:35:49.532 mytestapp[3038:18f07] [STATUS] Request cancelled: <ASIHTTPRequest: 0x88a0200>
2012-07-12 09:35:49.532 mytestapp[3038:18f07] [STATUS] Request <ASIHTTPRequest: 0x88a0200>: Cancelled
2012-07-12 09:35:49.532 mytestapp[3038:18f07] [CONNECTION] Request #39 failed and will invalidate connection #16
2012-07-12 09:35:49.533 mytestapp[3038:18f07] [STATUS] Request cancelled: <ASIHTTPRequest: 0x88a0a00>
2012-07-12 09:35:49.533 mytestapp[3038:18f07] [STATUS] Request <ASIHTTPRequest: 0x88a0a00>: Cancelled
2012-07-12 09:35:49.533 mytestapp[3038:18f07] [CONNECTION] Request #40 failed and will invalidate connection #17