ios 普通get和post请求
Get请求
//请求 URLNSString* urlStr = [NSString stringWithFormat:@"https://www.baidu.com"];//封装成 NSURLNSURL *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输出数据好像不完整。。。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
