AFNetworking 3.0+中使用body传数据

从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

你可能感兴趣的:(AFNetworking 3.0+中使用body传数据)