ios 普通get和post请求

Get请求

    //请求 URL
    NSString* urlStr = [NSString stringWithFormat:@"https://www.baidu.com"];
    //封装成 NSURL
    NSURL *url = [NSURL URLWithString:urlStr];

    //初始化 请求对象
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
    //也可以这样初始化对象
    //NSURLRequest* request = [NSURLRequest requestWithURL:url];
    //或者写为如下形式
    //NSMutableURLRequest *requestSecond = [NSMutableURLRequest initWithURL:url];
    //[requestSecond setHTTPMethod:@"GET"];

    //发送请求  默认为 GET 请求
    //1 、获得会话对象
    NSURLSession *session = [NSURLSession sharedSession];

    // 2、创建请求任务
    //        第一个参数:请求对象
    //      第二个参数:completionHandler回调(请求完成【成功|失败】的回调)
    //      data:响应体信息(期望的数据)
    //      response:响应头信息,主要是对服务器端的描述
    //      error:错误信息,如果请求失败,则error有值
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        if(!error){
            NSLog(@"请求加载成功。。。");
            //说明:(此处返回的数据是JSON格式的,因此使用NSJSONSerialization进行反序列化处理)
            // NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
            //如果是字符串则直接取出
            NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@"%@",str);
        } else {
            NSLog(@"网络请求失败!");
        }
    }];
    //执行任务
    [dataTask resume];

Post请求

    // 1.创建一个网络路径
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://kns.cnki.net/kns8/Brief/GetGridTableHtml"]];

    // 2.创建一个网络请求,分别设置请求方法、请求参数(也叫请求体)
    NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url];
    request.HTTPMethod = @"POST";


    NSString *args = @"IsSearch=true&QueryJson=%7B%22Platform%22%3A%22%22%2C%22DBCode%22%3A%22SCDB%22%2C%22KuaKuCode%22%3A%22CJFQ%2CCDMD%2CCIPD%2CCCND%2CCISD%2CSNAD%2CBDZK%2CCCJD%2CCCVD%2CCJFN%22%2C%22QNode%22%3A%7B%22QGroup%22%3A%5B%7B%22Key%22%3A%22Subject%22%2C%22Title%22%3A%22%22%2C%22Logic%22%3A4%2C%22Items%22%3A%5B%7B%22Key%22%3A%22Expert%22%2C%22Title%22%3A%22%22%2C%22Logic%22%3A0%2C%22Name%22%3A%22%22%2C%22Operate%22%3A%22%22%2C%22Value%22%3A%22ti%3Ddna%22%2C%22ExtendType%22%3A12%2C%22ExtendValue%22%3A%22%E4%B8%AD%E8%8B%B1%E6%96%87%E5%AF%B9%E7%85%A7%22%2C%22Value2%22%3A%22%22%2C%22BlurType%22%3A%22%22%7D%5D%2C%22ChildItems%22%3A%5B%5D%7D%2C%7B%22Key%22%3A%22ControlGroup%22%2C%22Title%22%3A%22%22%2C%22Logic%22%3A1%2C%22Items%22%3A%5B%5D%2C%22ChildItems%22%3A%5B%5D%7D%5D%7D%7D&PageName=AdvSearch&DBCode=SCDB&KuaKuCodes=CJFQ%2CCDMD%2CCIPD%2CCCND%2CCISD%2CSNAD%2CBDZK%2CCCJD%2CCCVD%2CCJFN&CurPage=1&RecordsCntPerPage=20&CurDisplayMode=listmode&CurrSortField=PT&CurrSortFieldType=desc&IsSentenceSearch=false&Subject=";
    request.HTTPBody = [args dataUsingEncoding:NSUTF8StringEncoding];
    [request addValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
    [request addValue:@"XMLHttpRequest" forHTTPHeaderField:@"X-Requested-With"];
    [request addValue:@"https://kns.cnki.net" forHTTPHeaderField:@"Origin"];
    [request addValue:@"https://kns.cnki.net/kns8/AdvSearch?dbprefix=CFLS&&crossDbcodes=CJFQ%2CCDMD%2CCIPD%2CCCND%2CCISD%2CSNAD%2CBDZK%2CCCJD%2CCCVD%2CCJFN" forHTTPHeaderField:@"Referer"];
    [request addValue:@"gzip, deflate, br" forHTTPHeaderField:@"Accept-Encoding"];
    [request addValue:@"zh-CN,zh;q=0.9" forHTTPHeaderField:@"Accept-Language"];


    // 3.获得会话对象
    NSURLSession *session = [NSURLSession sharedSession];

    // 4.根据会话对象,创建一个Task任务
    NSURLSessionDataTask *sessionDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        if(!error){
            NSLog(@"从服务器获取到数据");
            /*
            对从服务器获取到的数据data进行相应的处理
            */
            //NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingMutableLeaves) error:nil];
            //如果是字符串则直接取出
            NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@"%@",str);
        }else{
            NSLog(@"无法从服务器获取到数据");
        }
    }];

    //5.最后一步,执行任务,(resume也是继续执行)
    [sessionDataTask resume];

目前有个问题,NSLog输出数据好像不完整。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值