网络数据请求-方法/思想总结

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;

        }

    }];

原文地址:https://www.cnblogs.com/GJ-ios/p/5433623.html