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;
}
}];