AFNetworking:failureBlockでbodyの中身を取得する方法
いわずとしれた便利な通信ライブラリAFNetworkinggithub.com
errorBlock内ではbodyの中身取れませんって言われた
この前、エンジニア仲間から
「failureBlock内ではbodyを取って来れないって記事見たんでできない」
って言ってたのを聞き、
「んー、そんな事は考えにくいなぁ。。。」って思い、調べたので取得する方法を伝授。
やりかた
下記方法で取ってこれます。
-(void)requestAPI:(NSString*)API parameter:(NSDictionary*)parameters{ AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; manager.requestSerializer.timeoutInterval = 10.0; [manager POST:API parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject){ } failure:^(NSURLSessionDataTask *task, NSError *error){ NSData* data = error.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey]; NSString* body = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@",body); }]; }
できないって記事を鵜呑みにせずに自分で検討する力も大事。
その力が身に付きつつあるなと実感。
今後も精進します。