网络数据请求-方法/思想总结
2016-04-26 08:24
316 查看
1. 网络数据请求-封装请求
调用的开发者
1.创建这个网络对象(httpRequest)
2.在该ViewController类里遵循协议
3.实现协议中的方法
封装的开发者
1.根据NSURLConnection异步的方法进行封装, 创建url对象,保留delegate 最后发送异步请求
2.让封装的类遵循协议(NSURLConnectionDataDelegate)
3.让封装的类(QDLHttpRequest)去实现该协议中的方法(4个)
2. 数据请求方法
NSURLConnection 系统自带的 常用的网络请求方式
NSURLSession 系统自带的 iOS7.0之后出现的,它使用了block ,所以提高了开发效率
AFNetworking 第三方的目前很多公司经常使用第三方,内部集成了NSURLConnection和NSURLSession 环境是ARC, 也使用block 提高了开发效率,
并且不用系统库支持
ASIHttpRequest 第三方 原来经常使用的数据请求库 缺点就是:环境需要MRC, 并且没有使用block,需要进行ARC和MRC之间的转换(混编)
优点:ASI这个第三方库已经没有开发维护,比较成熟,比较稳定,很多开发者对ASI进行了一次block网络层封装后再调用使用
3. Get请求和Post请求
1. 一般get是从服务器上获取数据,post是向服务器传送数据
2. get请求是把参数列表加到提交表单中的ACTION属性中,值和表单内容各个字段一一对应,在我们的URL中可以看到。post请求是通过HTTP post机制, 将表单的各个字段和其他的内容设置到Html Header 里一起传送到ACTION属性指定的URL地址。(说白了用户无法看到此过程)
3. 对应的get方式,传送的数据比较小,不能大于2KB post方式传送的数据比较大,一般被默认为不受限制,但是理论上,IIS4中最大的数据量为80KB
II5最大的数据量为100KB
4. get安全性非常低,post安全性非常高。但是执行效率get比post要好
建议:
get方式安全性比post差,所以建议用post方式提交数据
在做数据查询的时候,建议用get方式,而在做数据的添加、修改或删除的时候,建议用post方式
4. KVO :key Value Obeserve 观察对象的属性,如果属性值发生了变化 会根据变化响应不同的方法 键值观察者
5. 设置网络监测状态改变
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
/*
AFNetworkReachabilityStatusUnknown = -1, 未知网络
AFNetworkReachabilityStatusNotReachable = 0, 无网络
AFNetworkReachabilityStatusReachableViaWWAN = 1, 运营商网络 如2G 3G 4G 5G
AFNetworkReachabilityStatusReachableViaWiFi = 2, WiFi网络
*/
switch (status) {
case AFNetworkReachabilityStatusUnknown:
{
NSLog(@"未知网络");
}
break;
case AFNetworkReachabilityStatusNotReachable:
{
NSLog(@"无网络");
}
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
{
NSLog(@"wifi网络");
}
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
{
NSLog(@"运营商网络");
}
break;
default:
break;
}
}];
调用的开发者
1.创建这个网络对象(httpRequest)
2.在该ViewController类里遵循协议
3.实现协议中的方法
封装的开发者
1.根据NSURLConnection异步的方法进行封装, 创建url对象,保留delegate 最后发送异步请求
2.让封装的类遵循协议(NSURLConnectionDataDelegate)
3.让封装的类(QDLHttpRequest)去实现该协议中的方法(4个)
2. 数据请求方法
NSURLConnection 系统自带的 常用的网络请求方式
NSURLSession 系统自带的 iOS7.0之后出现的,它使用了block ,所以提高了开发效率
AFNetworking 第三方的目前很多公司经常使用第三方,内部集成了NSURLConnection和NSURLSession 环境是ARC, 也使用block 提高了开发效率,
并且不用系统库支持
ASIHttpRequest 第三方 原来经常使用的数据请求库 缺点就是:环境需要MRC, 并且没有使用block,需要进行ARC和MRC之间的转换(混编)
优点:ASI这个第三方库已经没有开发维护,比较成熟,比较稳定,很多开发者对ASI进行了一次block网络层封装后再调用使用
3. Get请求和Post请求
1. 一般get是从服务器上获取数据,post是向服务器传送数据
2. get请求是把参数列表加到提交表单中的ACTION属性中,值和表单内容各个字段一一对应,在我们的URL中可以看到。post请求是通过HTTP post机制, 将表单的各个字段和其他的内容设置到Html Header 里一起传送到ACTION属性指定的URL地址。(说白了用户无法看到此过程)
3. 对应的get方式,传送的数据比较小,不能大于2KB post方式传送的数据比较大,一般被默认为不受限制,但是理论上,IIS4中最大的数据量为80KB
II5最大的数据量为100KB
4. get安全性非常低,post安全性非常高。但是执行效率get比post要好
建议:
get方式安全性比post差,所以建议用post方式提交数据
在做数据查询的时候,建议用get方式,而在做数据的添加、修改或删除的时候,建议用post方式
4. KVO :key Value Obeserve 观察对象的属性,如果属性值发生了变化 会根据变化响应不同的方法 键值观察者
5. 设置网络监测状态改变
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
/*
AFNetworkReachabilityStatusUnknown = -1, 未知网络
AFNetworkReachabilityStatusNotReachable = 0, 无网络
AFNetworkReachabilityStatusReachableViaWWAN = 1, 运营商网络 如2G 3G 4G 5G
AFNetworkReachabilityStatusReachableViaWiFi = 2, WiFi网络
*/
switch (status) {
case AFNetworkReachabilityStatusUnknown:
{
NSLog(@"未知网络");
}
break;
case AFNetworkReachabilityStatusNotReachable:
{
NSLog(@"无网络");
}
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
{
NSLog(@"wifi网络");
}
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
{
NSLog(@"运营商网络");
}
break;
default:
break;
}
}];
相关文章推荐
- 网络数据请求
- HTTP 请求方式: GET和POST的比较
- [BZOJ1596][Usaco2008 Jan]电话网络(贪心||树形dp)
- Caffe实践】如何利用Caffe训练ImageNet分类网络
- 160413.神经网络处理器
- HTTP协议
- 数据挖掘算法-BP神经网络
- okhttp3 get post 简单封装
- Servlet - 基础
- 如何通过HTTPS(SSL加密)方式访问webservice
- URL和URLConnection案例
- RCNN学习笔记(8):Fully Convolutional Networks for Semantic Segmentation(全卷积网络FCN)
- https://www.kernel-exploits.com/3/
- socket网络字节序
- TCP和UDP编程
- 网络框架的封装(二)
- 贴吧成网络盗版重灾区,商业化成熟了,监管却缺失了
- HTTP 状态代码及其定义。
- iOS开发总结之block回调以AFN为基础封装的网络请求操作类
- Head First C 第十一章 网络与套接字 创建knock-knock服务器 partII