当AFNetworking的POST请求2时,cocoa错误3840

我调用这个函数,每次都返回Cocoa Error 3840。 我尝试debugging和修复它,并在请求而不是parsing结果时出错


请求时,我在故障块中发现了这个错误。

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); } }]; } 

我通过添加下面的代码来解决它

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

一直困住同样的问题。

我解决了这个问题:

  self.requestSerializer = [AFJSONRequestSerializer serializer]; 

AFHTTPRequestOperationManager检查AFHTTPRequestOperationManager是否使用了正确的请求序列化程序。

希望这可以帮到你!

我通过确保返回的数据与Google电子表格XML响应(而不是JSON)的正确序列化解决了这个问题。

 manager.responseSerializer = [AFXMLParserResponseSerializer serializer]; 

我通过添加下面的代码来解决它

manager.requestSerializer = [AFJSONRequestSerializer serializer];