AFNetworking发送和接收字符串时报3840错误的解决办法

AFNetworking框架默认请求类型和响应类型都是JSON格式的,在特殊情况下,我们使用字符串形式的时候,就会报3840错误,如何解决呢?

  1. 设置请求管理者:

// 因为传递过去和接收回来的数据都不是json类型的,所以在这里要设置为AFHTTPRequestSerializer和AFHTTPResponseSerializer
mgr.requestSerializer = [AFHTTPRequestSerializer serializer];// 请求
mgr.responseSerializer = [AFHTTPResponseSerializer serializer];// 响应

2.在success中responseObject转换为一个字符串

// 转码
NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];


整体方法:

// 1.获得请求管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    // 因为传递过去和接收回来的数据都不是json类型的,所以在这里要设置为AFHTTPRequestSerializer和AFHTTPResponseSerializer
    mgr.requestSerializer = [AFHTTPRequestSerializer serializer];// 请求
    mgr.responseSerializer = [AFHTTPResponseSerializer serializer];// 响应
    
    // 2.发送GET请求
    [mgr GET:url parameters:params
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
        if (success) {
            // 转码
            NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

            NSLog(@"%@",string)
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        if (failure) {
            failure(error);
        }
    }];



你可能感兴趣的:(AFNetworking发送和接收字符串时报3840错误的解决办法)