从AFNetworking2.0+升级到了3.0+,由AFHTTPRequestOperationManager改为AFHTTPSessionManager,还是照着以前的写法改一改网络请求工具类,然后把NSData数据加到body里面,发现服务器端死活收不到,被这个问题卡了大半天都没辙。后面终于在网上看到了一个替代方案,就是使用AFURLSessionManager这玩意搞定了问题。
废话不多说,直接上代码:
NSString*requestUrl =deleteStudent;
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSString*Token= [[SSKJ_User_Tool sharedUserTool] getToken];
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:requestUrl parameters:nil error:nil];
request.timeoutInterval=30;
[requestsetValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[requestsetValue:@"1" forHTTPHeaderField:@"HeaderSign"];
[requestsetValue:@"1" forHTTPHeaderField:@"HeaderTimeStamp"];
[requestsetValue:Token forHTTPHeaderField:@"HeaderAuthorization"];
// 设置body
NSString * str =self.mode.regcenterAppuserStudentId;
NSData *data =[str dataUsingEncoding:NSUTF8StringEncoding];
[requestsetHTTPBody:data];
AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer];
responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",
nil];
manager.responseSerializer= responseSerializer;
NSLog(@"\r头部请求参数:%@",request);
[[managerdataTaskWithRequest:requestcompletionHandler:^(NSURLResponse*_Nonnullresponse,id _NullableresponseObject,NSError*_Nullableerror) {
NSData*jsonData = responseObject;
NSDictionary *dicJson=[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
WL_Network_Model*network_Model=[WL_Network_Modelmj_objectWithKeyValues:dicJson];
if([network_Model.stateisEqualToString:@"1"]) {
[self.navigationController popToRootViewControllerAnimated:YES];
[MBProgressHUD showError:@"退出班级成功"];
}else{
[MBProgressHUDshowError:responseObject[@"message"]];
}
}]
resume];
需要注意的是HTTP头信息可能会根据服务器的要求做相应的修改。搞定!
转载:
https://blog.csdn.net/yaoliangjun306/article/details/53411279