这次的项目中来了个比较“坑”的新后台,她写的一个接口需要以POST方式提交一个JSON格式的数据到服务端,以前我合作过的所有后台不管是用GET还是POST发送请求,上传参数都是以字典的形式。第一次碰到这种“坑货”,花了我一个下午才研究出来,直接上代码:
// 将要POST的字典参数转化为JSON字符串,其中postData为字典参数
NSData *data = [NSJSONSerialization dataWithJSONObject:postData options:0 error:nil];
NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString:urlStr parameters:nil error:nil];
[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
[[manager dataTaskWithRequest:request uploadProgress:^(NSProgress * _Nonnull uploadProgress) {
} downloadProgress:^(NSProgress * _Nonnull downloadProgress) {
} completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (!error) {
NSInteger responseCode = [HELPER showResponseCode:response];
success(responseObject, responseCode);
}else{
NSInteger responseCode = [HELPER showResponseCode:response];
fail(error, responseCode);
}
}] resume];