AFNetworking 500 Antworttext

8

Ich habe AFNetworking 2.0 in meiner App verwendet. Ich habe bemerkt, dass, wenn mein Web-Service einen Statuscode von 500 zurückgibt, ich den Körper der Antwort nicht erhalte.

Hier ist ein Beispiel meines PHP-Codes

%Vor%

Wenn ich einen einfachen Rest-Client verwende, ist dies ein Beispiel für einen Antworttext.

%Vor%

Dies scheint jedoch die einzige Antwort zu sein, die ich von AFNetworking bekommen kann

%Vor%

Dies ist der Teil meines Ziel-c-Codes, der das tut.

%Vor%

Gibt es eine Möglichkeit, den Antwortkörper zu bekommen?

Bearbeiten: Mehr Code zur Klärung

Unten ist ein Teil meiner Unterklasse von AHTHTPSessionManager

%Vor%

Ich habe versucht, den Antwort-Serializer auf einen AFCompoundResponseSerializer zu setzen, aber es schien keinen Unterschied zu machen

Unten ist ein Beispiel für eine Unterklasse, die ich den Bibliothekar nenne.

%Vor%     
Hackmodford 11.10.2013, 18:52
quelle

3 Antworten

14

UPDATE: Ich habe ein Github-Repository erstellt, das den neuesten Code enthält, den ich verwende. Alle Änderungen werden dort veröffentlicht. Ссылка

Die Antwort kommt von diesem Thema auf GitHub. Ссылка

gfiumara ist der Entwickler, der sich das ausgedacht hat. Ich habe seine Unterklasse von AFJSONResponseSerializer nur geringfügig geändert, um eine tatsächliche Zeichenfolge anstelle der NSData einzuschließen %Vor% %Vor%

Hier ist ein Beispiel, wie ich es im Fehlerblock verwende.

%Vor%     
Hackmodford 15.10.2013, 14:15
quelle
0

Sie müssen AFCompoundSerializer verwenden, um dem AFNetworking-Framework mitzuteilen, wie alle möglichen Antworten bearbeitet werden, die es erhalten könnte. Standardmäßig wird nur versucht, JSON zuzuordnen. Ein Compound-Serializer wird die Serialisierer durcharbeiten, bis es einen findet, der keinen Fehler verursacht.

Sie möchten Folgendes verwenden:

%Vor%

auf AFCompoundResponseSerializer (in AFURLResponseSerialization.h ).

Sie müssen ein Array von Serialisierern übergeben, die die Antwort verarbeiten können. Einer der Serializer im Array sollte eine Instanz von AFHTTPResponseSerializer sein, um Ihre Fehlerreaktionen zu behandeln.

    
Wain 11.10.2013 21:22
quelle
0

Wenn Sie meine Kategorie in Ihr Projekt aufnehmen, ist das so einfach wie folgt:

%Vor%

Hier ist der Code für meine Kategorie. Es verwirft AFURLSessionManager, um ein Shim in den Beendigungshandler zu injizieren. Das Shim setzt die Antwort in die userInfo des NSError.

Ссылка

    
Chris 09.09.2014 04:25
quelle