当前位置: 首页 > 面试题库 >

错误域= NSCocoaErrorDomain代码= 3840“使用AFNetworking无法完成该操作

顾永福
2023-03-14
问题内容

我正在使用AFNetworking库通过POST方法在服务器上发布数据。

以下是我的代码

- (void) callLoginAPI:(NSDictionary *)dictProfile{
    // 1
    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:[dictProfile valueForKey:@"name"], @"username",
                                                                    [dictProfile valueForKey:@"first_name"],@"first_name",
                                                                    [dictProfile valueForKey:@"last_name"],@"last_name",
                                                                    [dictProfile valueForKey:@"email"],@"email",
                                                                    [dictProfile valueForKey:@"birthday"],@"dob",
                                                                    [dictProfile valueForKey:@"gender"],@"gender",
                                                                    [[dictProfile valueForKey:@"location"] valueForKey:@"name"],@"location",
                                                                    [dictProfile valueForKey:@"timezone"],@"timezone",
                                                                    @"",@"language",
                                                                    [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=large",[dictProfile valueForKey:@"id"]],@"profile_pic_url",
                                                                    @"",@"cover_pic_url",nil];



    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];



    [manager POST:@"http://10.1.81.35:8000/api/login/" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"JSON: %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];
}

但是我得到以下错误响应

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=0x797f2620 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

我不明白代码有什么问题。


问题答案:

问题来自响应解析。您正在尝试反序列化JSON响应(必须包含在a
NSArray或中NSDictionary),但是您的响应不是以上所有(很可能是简单的字符串)。

另外,尝试将“允许片段”设置为响应序列化程序。

AFJSONResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];


 类似资料:
  • 我使用AFNetworking在iOS中使用post方法从服务器获取数据,但我得到的状态代码是200 OK,但在AFNetworking中,它有Failure methods和下面的错误显示,我也在google上搜索过,我也尝试过基于结果的搜索,但显示的错误相同。 等待您的回复。 状态代码 :- 错误:-Error Domain=NSCocoaErrorDomain Code=3840"操作无法完

  • 我正在尝试使用xcode中的Switf 4使用rest Web服务,这是我的代码: 这是我在xcode控制台中的回答: Linea 50:Error Domain=NSCocoaErrorDomain Code=3840“字符0周围的值无效。”UserInfo={NSDebugDescription=字符0周围无效的值。}Linea 52:可选(“|{\”login\“:\”true\“}”) 这

  • 问题内容: 当我运行代码时,出现此错误,我不知道为什么。 错误域= NSCocoaErrorDomain代码= 3840“无值。” UserInfo = {NSDebugDescription =无值。} 我在互联网上寻找它,但没有找到任何东西。 这是我的代码: 谢谢您的帮助 问题答案: 您需要将content-type标头值设置为使用JSON。 将代码更新为Swift 3,并删除了与请求无关的所

  • 我是iOS新手。我收到此错误: Error Domain=NSCoaErrorDomain Code=3840"字符0周围的值无效。"UserInfo={NSDebugDescription=字符0周围的值无效。}反序列化JSON时出错:Error Domain=NSCoaErrorDomain Code=3840"JSON文本没有以数组或对象开头,也没有设置允许片段的选项。"UserInfo={

  • 当我运行模拟器时,以下错误显示为警报: 操作无法完成。(LaunchServicesError错误0。) 我试过很多关于堆栈溢出的答案,但它们对我都不起作用。 Feb 18 14:48:12 com.apple.dt.xcode[32825]:错误域=LaunchServicesError Code=0“(null)”userInfo={Error=MissingBundleExecutable,

  • 我试图在出现错误的情况下通过AlaMofires的回调访问 属性 我有一个枚举,它处理 类型,特别类似于Alamofire文档 在我的请求中,如果有错误,我将适用的错误存储到Alamofire提供的 案例中,如下所示: 调用该方法时: 然后,当我调用 方法时,我检查完成处理程序中的错误: 如果出现返回 的错误,我将收到以下错误 如何从返回的错误中获取 值?我试过 ,但没有成功。任何帮助都太好了!