AFNetworking在失败时获取responseObject

在failure的block里写:
Objective-C部分:

    NSDictionary *userinfo = [[NSDictionary alloc] initWithDictionary:error.userInfo];

if(userinfo) {
      NSError *innerError = [userinfo valueForKey:@"NSUnderlyingError"];
      if(innerError) {
         NSDictionary *innerUserInfo = [[NSDictionary alloc] initWithDictionary:innerError.userInfo];
         if(innerUserInfo)
         {
              if([innerUserInfo objectForKey:AFNetworkingOperationFailingURLResponseDataErrorKey])
              {
                   NSString *strError = [[NSString alloc] initWithData:[innerUserInfo objectForKey:AFNetworkingOperationFailingURLResponseDataErrorKey] encoding:NSUTF8StringEncoding];
                            NSLog(@"Error is : %@",strError);
              }
         }
      } else
      {
           NSString *errResponse = [[NSString alloc] initWithData:[userinfo valueForKey:@"AFNetworkingOperationFailingURLResponseDataErrorKey"] encoding:NSUTF8StringEncoding];

          if(errResponse)
          {
               NSLog(@"%@",errResponse);
          }
      }
}

swift部分:

if let userInfo : NSDictionary = error.userInfo as NSDictionary {
     if let innerError : NSError = userInfo.objectForKey("NSUnderlyingError") as? NSError {

         if let innerUserInfo : NSDictionary = innerError.userInfo as NSDictionary {

              if innerUserInfo.objectForKey(AFNetworkingOperationFailingURLResponseDataErrorKey) != nil {
                   let StrError = NSString(data: innerUserInfo.objectForKey(AFNetworkingOperationFailingURLResponseDataErrorKey) as! NSData, encoding: NSUTF8StringEncoding)

                   print(StrError)
              }
         } else if let errResponse: String = String(data: (error.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey] as! NSData), encoding: NSUTF8StringEncoding) {
              print(errResponse)
         }
     }

}

你可能感兴趣的:(AFNetworking在失败时获取responseObject)