2009-05-13 2 views
2

NSURLConnection führt standardmäßig eine GET-Anforderung mit HTTP v1.1 aus.Force HTTP v1.0-Anforderung mit NSURLConnection

Wie bekomme ich es eine GET-Anfrage mit HTTP v1.0 durchzuführen?

Oder gibt es einen HTTP-Header, den ich einstellen kann, der das für mich tut?

+0

Die offensichtliche Frage ist, warum Sie dies tun wollen. Ich habe den starken Verdacht, dass Sie zu den CFHTTP-Funktionen dafür heruntersinken müssen, aber das Aktualisieren Ihres Servers wäre eine bessere Idee! –

Antwort

6

Nach einem kurzen Blick durch die NSURLRequest-APIs sehe ich keine Möglichkeit, dies auf dieser Ebene zu tun, aber Sie können dies tun, indem Sie auf die HTTPMessage-APIs in CFNetwork.framework (CoreServices.framework auf dem Mac) . Zum Beispiel:

CFHTTPMessageRef request = CFHTTPMessageCreateRequest(kCFAllocatorDefault, 
    CFSTR("GET"), theURL, kCFHTTPVersion1_0); 

Wenn Sie eine ObjC Wrapper wollen, um dieses, es gibt ein paar, einschließlich one of my own devising. Dieser ist ein ziemlich grundlegender Wrapper um die CF-API herum, aber Sie können einen NSInputStream von ihm erhalten, mit dem Sie die Antwortdaten mit den Standard-NSInputStream-APIs lesen können.

Andere, wie ASIHTTPRequest bieten eine viel größere API, die Sie bevorzugen könnten.

0

Die neueste Version von ASIHTTPRequest hat eine einfache Möglichkeit, dies zu tun:

[request setUseHTTPVersionOne:YES]; 
Verwandte Themen