网络数据请求
来源:互联网 发布:运营商网络攻击 编辑:程序博客网 时间:2024/04/30 10:09
在做iOS开发过程中很重要的一项工作就是对网络数据进行下载和解析,虽然有很多相关的第三方能够很好的完成这些工作,但对开发者而言,能够了解整个网络请求的流程能够帮助我们更好的对数据进行操作。
首先介绍一下两种网络请求方式。
一、GET和POST请求
先看一个网址:“http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213”;
上面的网址可以被?分为两部分,当使用GET请求方式时,输入上面全部内容获取数据;当使用POST请求方式时,用?的前半部分作为URL,后半部分作为BODY。至于两种请求方式的区别,我们以后再说,这里只单纯的讲使用方法。
二、GET和POST请求方式的使用
先写GET请求的方式:
//1.创建URL NSURL *url = [NSURL URLWithString:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213"]; //2.创建会话session NSURLSession *session = [NSURLSession sharedSession]; //3.创建task(内部处理了请求,默认就是GET,直接传URL就行)。 NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSLog(@"%@",data); NSLog(@"%ld",error.code) }]; //4.启动任务 [dataTask resume];再看POST请求的方式:
// 1.创建URL NSURL *url = [NSURL URLWithString:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx"]; // 2.创建请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 3.设置请求方式 [request setHTTPMethod:@"POST"]; // 4. 设置请求的内容 NSData *bodyData = [@"date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213" dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:bodyData]; // 5. 创建会话 NSURLSession *session = [NSURLSession sharedSession]; // 6.创建task NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSLog(@"%@",data); NSLog(@"%ld",error.code) }]; // 7.开始任务 [dataTask resume];这样网络请求的任务就创建成功了,需要注意的是由于系统默认的网络请求方式是GET,所以当使用POST请求方式时,需要使用上面的第三部,否则失败。
以上均为异步请求方式,由于同步请求会导致APP所有功能暂时停用,用户体验不好,使用的地方不多,所以本文不做介绍
三、两种请求方式的差异
GET请求直接将请求的参数写在地址里,使用起来非常简单,而且请求的地址有限,最多只有255个字节。
POST请求将地址和请求参数分开,所以body可以做的比较大一些,最多多少还没有试过,但绝对够用。有人说POST请求的安全性要比GET方式高,我并不这么认为。因为POST请求的body可以加密,当body在服务器解密后才可以读取,这时如果body中包含有病毒,对服务器对威胁是巨大的。所以安全性的问题就仁者见仁智者见智吧。
- 网络数据请求
- qml 请求网络数据
- 网络请求数据解析
- iOS网络数据请求
- 请求网络数据JSON
- 网络请求数据
- 网络请求数据
- 网络数据请求
- 网络异步请求数据
- IOS_UI_网络数据请求
- 从网络请求数据
- 网络数据的请求
- iOS_UI_网络数据请求
- http,请求网络数据
- 数据的网络请求
- 网络请求数据问题
- 网络数据请求
- 网络请求数据缓存
- jquery实现checkbox全选,反选,取消选择
- 青春
- android-Junit功能测试
- 协方差矩阵的概念及matlab计算
- Android Hybird架构之整合XwalkView,让你的App内置chromium内核
- 网络数据请求
- 人生
- iOS代理设计模式
- 北京 北京
- java中的clone
- POJ 1426 Find The Mutiple
- Swift之 ? , !, as
- python 处理命令行参数
- 【Android 开发】SufaceView自定义相机拍照