Ich habe begonnen, mit ASIHTTPRequest in meinem iOS-Projekt REST-Server-Methodenaufrufe auszuführen und waren bisher sehr erfolgreich damit. Ich habe nur ein seltsames intermittierendes Problem. In sehr seltenen Fällen erhalte ich die folgende Antwort von mit [ASIHTTPRequest startAsynchronous]:Ziel C - HTTP/0.9 Antwort von GET mit ASIHTTPRequest
HTTP/0.9 200 OK
Wenn diese Methode meines Servers kommt nicht aufgerufen. Normalerweise kommt jeder Methodenaufruf mit einer Antwort zurück, die 'HTTP/1.1' startet. Ich verwende HTTPS mit einem GeoTrust/RapidSSL-Zertifikat, um die Verbindung zu sichern. Interessanterweise habe ich festgestellt, dass ich dieselbe 'HTTP/0.9 200 OK' Antwort bekomme, wenn ich versuche, eine Verbindung zum SSL-Port (443) herzustellen, aber 'http' als Protokoll anzugeben.
Nur um weitere Informationen hinzuzufügen - das Problem tritt meistens auf, nachdem die App für eine gewisse Zeit im Leerlauf war. Z.B. Die Anfrage wird erfolgreich abgeschlossen. Lassen Sie die App für einige Zeit im Leerlauf, dann tritt das Problem bei der nächsten Anfrage auf und die App funktioniert weiterhin einwandfrei.
Kann jemand etwas Licht auf das werfen, was möglicherweise geschieht?
Vielen Dank, Jonathan
UPDATE: Ich habe unten einige Debug-Informationen Ausgabe von ASIHTTPRequest eingefügt, wenn das Problem aufgetreten ist:
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
Was ist Ihre Serverseite? Haben Sie absolut, 100%, kategorisch ausgeschlossen, dass der Server sich schlecht verhält, indem Sie den tatsächlichen Netzwerk-Datenstrom mit einem Paket-Sniffer wie Wireshark überprüfen? – pmdj
Gibt es eine Chance, dass Ihr ISP einen Proxy verwendet? – Lefteris
Haben Sie versucht, "validatesSecureCertificate = NO;" – endy