AFNetworking POST zu REST Webservice

8

Kurze Hintergrundgeschichte, unser vorheriger Entwickler hat ASIHTTPRequest verwendet, um POST-Anfragen zu stellen und Daten von unserem Webservice abzurufen. Aus unbekannten Gründen funktioniert dieser Teil unserer App nicht mehr. Schien gut genug Zeit für die Zukunft und gehen Sie mit AFNetworking. Der REST-Webservice wird im CakePHP-Framework ausgeführt.

Kurz gesagt, ich erhalte den Request-Response-String nicht mit AFNetworking.

Ich weiß, dass der Webservice funktioniert, weil ich erfolgreich Daten posten kann und die richtige Antwort mit curl erhalten kann:     curl -d "data [Modell] [field0] = field0value & amp; data [Modell] [field1] = field1value" Ссылка

Nach den Anweisungen des vorherigen Entwicklers habe ich folgendes gefunden.

%Vor%

Ausgabe: Operation hasAcceptableStatusCode: 200 Antwortstring: eine leere Plist-Datei

Lösungsversuch 1: AFNetworking Post Request Die vorgeschlagene Lösung verwendet eine Funktion von AFHTTPRequestOperation namens operationWithRequest. Wenn ich jedoch versuche, diese Lösung zu verwenden, erhalte ich eine Warnung "Klassenmethode" + operationWithRequest: completion: 'not found (Rückgabetyp ist standardmäßig' id '"

)

versuchte Lösung 2: NSURLConnection. Ausgabe: Ich bin in der Lage, das Meldungsprotokoll des Erfolgsprotokolls, aber nicht die Antwortzeichenfolge zu drucken. * update - gibt ein leeres Plist zurück.

%Vor%     
Airuop 29.03.2012, 14:54
quelle

2 Antworten

18

Dies sind die wesentlichen (Stripping-Bedingungen, die ich für mich selbst gemacht habe), die meine Anfrage an den Web-Service erfüllten. Danke für die Anregungen @ 8vius und @mattt!

%Vor%     
Airuop 03.04.2012, 21:07
quelle
6

Verwenden Sie AFHTTPClient -postPath:parameters:success:failure: , übergeben Sie Ihre Parameter (verschachtelte Wörterbücher / Arrays sind in Ordnung). Wenn Sie ein Zurück erwarten, müssen Sie sicherstellen, dass der Client AFPropertyListRequestOperation registriert.

In jedem Fall ist setValue:forHTTPHeaderField: nicht das was du willst. HTTP-Header dienen zur Angabe von Informationen über die Anfrage selbst; Daten sind Teil des Anfragekörpers. AFHTTPClient konvertiert Parameter automatisch in eine Abfragezeichenfolge für GET -Anforderungen oder in einen HTTP-Textkörper für POST , et al.

    
mattt 29.03.2012 19:07
quelle