Я работаю над исправлением ошибки в существующем проекте. Проблема в том, что AFHTTPClient ожидает действительный ответ JSON, но сервер возвращает какую-то тарабарщину вроде ""\" Операция завершена\"" (в ответе все кавычки и скобки). Это приводит к сбою операции и попаданию блок fail, потому что он не может проанализировать ответ.Несмотря на это, сервер возвращает код состояния 200 и рад, что операция завершена.
У меня есть класс, который расширяет AFHTTPClient таким образом (из моего файла .h)
@interface AuthClient : AFHTTPClient
//blah blah blah
@end
В моем файле реализации класс инициализируется так:
- (id)initWithBaseURL:(NSURL *)url{
if (self = [super initWithBaseURL:url]) {
self.parameterEncoding = AFFormURLParameterEncoding;
self.stringEncoding = NSASCIIStringEncoding;
[self setDefaultHeader:@"Accept" value:@"application/json"];
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
}
return self;
}
Вызов, который я делаю, выполняется в классе, упомянутом выше, и происходит так:
- (void)destroyToken:(NSString *)token onCompletion:(void (^)(BOOL success))completion onFailure:(void (^)(NSError *error))failure{
[self postPath:@"TheServerURL" parameters:@{@"token": token} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSError *error;
//Do some stuff
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//Don't want to be here.
}];
}
Внутри блока сбоя ошибка возвращается в разделе _userInfo объекта ошибки как:
[0] (null) @"NSDebugDescription" : @"Текст JSON не начинался с массива или объекта, а параметр разрешения фрагментов не установлен."
Код ошибки 3480.
Из поиска в Google я понял, что мне нужно установить что-то вроде NSJSONReadingAllowFragments, но я не уверен, как/где, учитывая текущую настройку. У кого-нибудь есть идеи?