warum ist RestKit die änderung meiner Antwort content-Typ?

Kurz gesagt: ich versuche, Sie zu Holen Daten aus der server mit der content-type des http-request-header Satz als @"text/html.. aber für einige Grund RestKit änderungen, die zu application/JSON

Erklärung:
Wenn ich diesen Wunsch mit nur AFNetworking.. Dinge, die funktionieren wie ein Charme.. dies ist, was mein AFNetworking-code sieht wie folgt aus:

AFHTTPClient *client = [AFHTTPClient alloc] initWithBaseURL:
                                               [NSURL URLWithString:kApiBaseUrl]];
singleton.parameterEncoding = AFJSONParameterEncoding;
[singleton setDefaultHeader:@"Accept" value:@"text/html"];
[client getPath:getPath parameters:nil success:successCallback failure:failureCallback];

Wenn ich das genau die gleiche client - und befestigen Sie es an

MyClient *client = [MyClient getSingleton];  //MyClient is instantiated as above        
self.objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
self.objectManager.managedObjectStore = self.managedObjectStore;
//this should have already been done by my client, but putting
//it here just to be sure
[self.objectManager setAcceptHeaderWithMIMEType:@"text/html"];

[[RKObjectManager sharedManager] getObjectsAtPath:kGradesPath 
                                       parameters:nil 
                                          success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
 //handle success
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
 //handle failure
}];

den Fehler den ich bekomme, ist:

 restkit.network:RKObjectRequestOperation.m:576 Object request failed: 
 Underlying HTTP request operation failed with error: Error
 Domain=org.restkit.RestKit.ErrorDomain Code=-1016 "Expected content type {(
    "application/x-www-form-urlencoded",
    "application/json"
)}, got text/html" UserInfo=0x8f7acd0

Graben in das Thema ein.. ich legte eine Pause, in managedObjectRequestOperationWithrequest, dann überprüfte ich die acceptableContentTypes von HTTPRequestOperation erstellt, und es steht null zu null! Also ich gehe davon aus, dass RestKit ist gerade dabei, seinen eigenen Standard akzeptablen content-Typen.. ich weiß nur nicht wo und wie es zu verhindern. Ideen?

p.s. Ich habe keine Kontrolle über den server, so kann ich nicht ändern es ist content-type header application/JSON


Update:

Es stellt sich heraus, dass in RKObjectRequestOperation.m es wird die mime-type aus [RKMIMETypeSerialization registeredMIMETypes];(Linie 354).. und so in RKMIMETypeSerialization.hgibt es noch die Methode:

/**
 Registers the given serialization class to handle content for the given MIME Type identifier.

 MIME Types may be given as either a string or as a regular expression that matches the MIME Types for which the given serialization should handle. Serializations are searched in the reverse order of their registration. If a registration is made for an already registered MIME Type, the new registration will take precedence.

 @param serializationClass The class conforming to the RKSerialization protocol to be registered as handling the given MIME Type.
 @param MIMETypeStringOrRegularExpression A string or regular expression specifying the MIME Type(s) that given serialization implementation is to be registered as handling.
 */
+ (void)registerClass:(Class<RKSerialization>)serializationClass forMIMEType:(id)MIMETypeStringOrRegularExpression;

wie kann ich diese registrieren Sie einen text/html content-type?

InformationsquelleAutor abbood | 2013-10-26
Schreibe einen Kommentar