AFNetworking:如何在失败时获取响应字符串?

wat*_*est 2 ios afnetworking

我在用

- (AFHTTPRequestOperation *)GET:(NSString *)URLString
                 parameters:(id)parameters
                    success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
                    failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
Run Code Online (Sandbox Code Playgroud)

与服务器通信,它工作得很好.

但有时,服务器上有一个错误,它的响应不是json格式.我的搭档希望我显示错误字符串,但由于它进入了故障块,我很难得到原始的响应字符串.

有人可以帮忙吗?

Rah*_*tel 5

您可以记录operation.responseString成功和失败两者以获取服务器的响应字符串.

如果webservice出现某种错误并提供无效的json或响应,则登录[error description]失败块.

如需参考,请查看以下代码段.

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setTimeoutInterval:120];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
[manager POST:[[NSString stringWithFormat:@"%@",URL]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] parameters:parameters 
     success:^(AFHTTPRequestOperation *operation, id responseObject) 
     {
       NSLog(@"Response: %@", operation.responseString);  
     } 
     failure:^(AFHTTPRequestOperation *operation, NSError *error) 
     {
       NSLog(@"Error: %@ \n %@", operation.responseString,[error description]);
     }];
Run Code Online (Sandbox Code Playgroud)