почему RestKit меняет тип содержимого моего ответа?
Короче говоря: я пытаюсь получить данные с сервера сcontent-type
заголовка http-запроса, установленного как@"text/html
.. но по какой-то причине RestKit меняет это наapplication/JSON
Объяснение: Если бы я сделал этот запрос, используя толькоAFNetworking.. все работает как шарм .. вот как выглядит мой код AFNetworking:
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];
Если я использую этоточно такой же клиент и прикрепить его к
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
}];
ошибка, которую я получаю:
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
копаться в теме .. я ставлю точку останова вmanagedObjectRequestOperationWithRequestтогда я проверилacceptableContentTypes изHTTPRequestOperation
создано, и это ноль! Так что я предполагаю, что RestKit просто помещает свои собственные приемлемые типы контента по умолчанию ... я просто не знаю, где и как это предотвратить. идеи?
постскриптум У меня нет контроля над сервером, поэтому я не могу изменить егоcontent-type
заголовок кapplication/JSON
Обновить:
Оказывается, что вRKObjectRequestOperation.m это получаетmime-type
из[RKMIMETypeSerialization registeredMIMETypes];
(строка 354) .. и так вRKMIMETypeSerialization.hесть метод:
/**
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;
как я могу использовать это для регистрацииtext/html
Тип содержимого?