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% 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.
Tags und Links iphone rest post cakephp afnetworking