Comencé a utilizar ASIHTTPRequest en mi proyecto iOS para ejecutar llamadas al método de servidor REST y hasta ahora he tenido mucho éxito. Solo tengo un extraño problema intermitente. Muy de vez en cuando me da la siguiente respuesta de usar [ASIHTTPRequest startAsynchronous]:Objetivo C - Respuesta HTTP/0.9 de GET usando ASIHTTPRequest
HTTP/0.9 200 OK
Cuando esto ocurre a mi método de servidor no recibe llamados. Normalmente, todas las llamadas a métodos retornan con una respuesta que comienza con 'HTTP/1.1'. Estoy usando HTTPS con un certificado GeoTrust/RapidSSL para asegurar la conexión. Curiosamente, he encontrado que obtengo la misma respuesta 'HTTP/0.9 200 OK' si trato de conectarme al puerto SSL (443) pero especificando 'http' como el protocolo.
Solo para agregar más información: el problema se produce principalmente después de que la aplicación se ha dejado inactiva durante un período de tiempo. P.ej. la solicitud se completa con éxito, luego deja la aplicación inactiva por un tiempo, luego en la siguiente solicitud el problema ocurre y la aplicación continúa funcionando bien.
¿Alguien puede arrojar algo de luz sobre lo que podría estar ocurriendo?
Muchas gracias, Jonathan
ACTUALIZACIÓN: He pegado debajo de una cierta salida de información de depuración por ASIHTTPRequest cuando ocurrió el problema:
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
¿Cuál es su lado del servidor? ¿Ha excluido categóricamente, al 100%, categóricamente que el servidor se está comportando mal al verificar el flujo de datos de la red real con un detector de paquetes como Wireshark? – pmdj
¿Alguna posibilidad de que su ISP esté usando un proxy? – Lefteris
¿Ha intentado configurar "validatesSecureCertificate = NO;" – endy