Warum ändert RestKit meinen Antwort-Inhaltstyp?

7

Kurz gesagt: Ich versuche, Daten auf den Server mit dem content-type des Headers HTTP-Anforderung als @"text/html eingestellt bilden zu holen .. aber aus irgendeinem Grund RestKit Änderungen, die an application/JSON

Erläuterung: Wenn ich diese Anforderung machen mit nur AFNetworking .. Dinge wie ein Zauber arbeiten .. das, was Code meines AFNetworking ist wie folgt aussieht:

%Vor%

Wenn ich diesen exakten gleichen Client verwende und ihn an

anschließe %Vor%

Der Fehler, den ich bekomme ist:

%Vor%

in das Thema zu graben .. Ich habe eine Bruchstelle in managedObjectRequestOperationWithRequest , dann überprüfte ich die acceptableContentTypes HTTPRequestOperation erstellt, und es ist null! Also nehme ich an, dass RestKit nur seinen eigenen Standard akzeptable Inhaltstypen setzt. Ich weiß einfach nicht wo und wie ich es verhindern kann. Ideen?

p.s. Ich habe keine Kontrolle über den Server, daher kann ich seinen content-type -Header nicht in application/JSON

ändern

Aktualisierung:

Es stellt sich heraus, dass in RKObjectRequestOperation.m es bekommt das mime-type von [RKMIMETypeSerialization registeredMIMETypes]; (Linie 354) .. und so in RKMIMETypeSerialization.h gibt es die Methode:

%Vor%

Wie registriere ich einen text/html content-type?

    
abbood 26.10.2013, 07:07
quelle

2 Antworten

29

RestKit erwartet im Allgemeinen einen einzelnen MIMEType (JSON) für seine Antwortdaten. Sie können jedoch sagen, dass es andere Arten wie text/plain und text/html mit der Methode behandeln soll, die Sie gefunden haben, und nach meiner Erfahrung war es ziemlich praktisch. Wenn ich dies zu meiner RestKit-Konfiguration hinzufüge (was ich in meinem App-Delegaten mache), kann ich sowohl application/json als auch text/html als Antwortdaten-Inhaltstypen akzeptieren.

%Vor%

In meinem Fall ist dies auch hilfreich, weil Jersey - das Web-Services-Framework, das das Backend-Team in meinem Unternehmen verwendet - den Content-Type leerer Payloads auf text/plain setzt, was zu fehlgeschlagenen Blöcken führt, wenn ich mich nicht eigens dafür registriert habe das MIMEType.

Hoffe, das hilft.

    
Kyle Clegg 26.10.2013, 07:40
quelle
-1

Ich benutze conchange const value, um type zu schreiben, die von Server-API wie folgt erhalten

%Vor%

Wenn erhaltene Textstruktur wie JSON funktioniert, funktioniert dieser Ansatz perfekt

    
ua24 14.07.2015 23:13
quelle