2013-11-01 4 views
4

Я вызываю эту функцию и возвращаю Cocoa Error 3840 каждый раз. Я пытаюсь отладить и исправить ее и ошибка при получении запроса, а не когда разбора результатаОшибка какао 3840 при запросе POST с AFNetworking 2


Я нашел ошибку в отказе блоков при получении запроса.

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x109230960 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not et.} 
2013-11-01 12:09:30.925 MagicBox[87431:70b] The operation couldn’t be completed. (Cocoa error 3840.) 

Это мой код Заранее спасибо.

- (void)loginWithUserName:(NSString *)userName 
      Password:(NSString *)password 
      orFacebook:(NSString *)facebookID 
    withResponseBlock:(ResponseBlock)responseBlock { 

if (!userName && !facebookID) { 
    NSError *error = [NSError errorWithDomain:@"Missing Parameters" 
             code:400 
            userInfo:@{ NSLocalizedDescriptionKey : @"Username or FacebookID is required"}]; 
    responseBlock(error, nil); 
} 

NSDictionary *params; 

if (facebookID) { 
    params = @{ @"fb_id": facebookID }; 
} else { 
    params = @{ @"username": userName, 
       @"password": password }; 
} 

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
NSString *loginURL = [self requestWithPath:@"/api/login"]; 
[manager POST:loginURL 
    parameters:params 
constructingBodyWithBlock:nil 
     success:^(AFHTTPRequestOperation *operation, id responseObject) { 
      if (responseBlock) { 
       responseBlock(nil, responseObject); 
      } 
     } 
     failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      if (responseBlock) { 
       responseBlock(error, nil); 
      } 
     }]; 
} 
+0

Смотрите http://stackoverflow.com/a/19692152/1445366 –

+0

Спасибо всем, что код ошибки означает, что JSONSerializer не может разбор моего ответа API, потому что AFNetworking2 по умолчанию Serializer ответа на JSON и проблема моей API возвращение строка –

ответ

4

Был с той же проблемой.

я решил ее так:

self.requestSerializer = [AFJSONRequestSerializer serializer]; 

т.е. двойная проверка использует ли AFHTTPRequestOperationManager правильный запрос сериалайзер.

Надеюсь, это может вам помочь!

3

Я решил это, убедившись, что возвращаемые данные в правильной сериализации с таблицами Google ответом XML (вместо JSON)

manager.responseSerializer = [AFXMLParserResponseSerializer serializer]; 
2

Я решил, добавив следующую строку кода

менеджера. requestSerializer = [AFJSONRequestSerializer serializer];

16

Я решил, добавив следующую строку кода

manager.responseSerializer = [AFHTTPResponseSerializer сериализатору];

+0

решить мой проблема, спасибо. – Leonly91

Смежные вопросы