get responseObject on failure block AFNetworking 3.0

后端 未结 6 1779
别那么骄傲
别那么骄傲 2020-12-09 03:02

how can I get the response string from failure block in AFNetworking 3.x,

In the 2.x version the way to do it was:

[manager GET:path parameters:param         


        
6条回答
  •  猫巷女王i
    2020-12-09 03:35

    I've found solution at GitHub:

    @interface ResponseSerializer : AFJSONResponseSerializer
    @end
    
    @implementation ResponseSerializer
    
    - (id)responseObjectForResponse:(NSURLResponse *)response
                           data:(NSData *)data
                          error:(NSError *__autoreleasing *)errorPointer
    {
        id responseObject = [super responseObjectForResponse:response data:data error:errorPointer];
        if (*errorPointer) {
            NSError *error = *errorPointer;
            NSMutableDictionary *userInfo = [error.userInfo mutableCopy];
            userInfo[@"responseObject"] = responseObject;
            *errorPointer = [NSError errorWithDomain:error.domain code:error.code userInfo:[userInfo copy]];
        }
        return responseObject;
    }
    
    @end
    

    And then assign it to your manager:

    self.manager.responseSerializer = [ResponseSerializer serializer];
    

提交回复
热议问题