NSURLSession异步post请求服务器

//先列举用NSURLSession异步post请求服务器

//先初始化一个url和request

NSURL *url=[NSURL URLWithString:@"这里是你需要请求的网址"];

NSMutableURLRequest *request=[NSMutableURLRequest                      requestWithURL:url];

NSDictionary *jsonDic = [self getJSONdata];

//这里设置request的请求方法,不设置会默认为get方法

    request.HTTPMethod=@"POST";

//设置request的请求参数 

    request.HTTPBody = [NSJSONSerialization dataWithJSONObject:jsonDic options:NSJSONWritingPrettyPrinted error:nil];

    //设置request的请求格式 我这里是json格式  大家可以根据需要改成相应格式

      [request setValue:@"application/jason" forHTTPHeaderField:@"Content-Type"];


NSURLSession  *session=[NSURLSession sharedSession];

//这里就会异步请求服务器,成功就会进入dict[@"success"];如果失败  请根据出错原因看看哪里设置错误

    NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

        NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

        if (dict[@"error"]) {

            NSLog(@"%@",dict[@"error"]);

        }

        else

        {

            dict[@"success"];

        }

    }];

//千万别忘了这个

[dataTask resume];


//请求的json数据参数

+ (NSDictionary *)getJSONdata

{

    return @{

             @"method": @"marketNotModule",

             @"client": @1,

             @"jsession": @"",

             @"marketCode": @"tencent",

             @"userId": @0,

             @"version": @"3.0.5"

             };

}



//列举第三方框架AFNetworking异步post请求服务器

//和NSURLSession差不多 同样需要请求参数

 NSDictionary *dic;

    dic = [self getDataWillCommitJSON];

    AFHTTPRequestOperationManager *manage = [AFHTTPRequestOperationManager manager];

    manage.responseSerializer = [AFJSONResponseSerializer serializer];

    manage.requestSerializer=[AFJSONRequestSerializer serializer];

//如果不知道下面该传什么参数格式 先别设置下面这行代码 执行就会出错 就可以知道参数格式了 ?

    manage.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/x-javascript", nil];

    //成功就会异步调用进入success,responseObject就是请求到的数据

    [manage POST:@"http://tvfan.cn/clientProcess.do" parameters:dic success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {

        NSLog(@"%@",responseObject);

    } failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {

        NSLog(@"%@",error);

    }];



//这是根据我自己的参数环境写的博文  各位应用时请根据个人情况改变代码  

转载于:https://my.oschina.net/u/2488236/blog/521559

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值