学习 AFNetworking 3.0
AFNetworking 3.0
1.AFURLSessionManager
基于特定的 NSURLSessionConfiguration,并遵从 <NSURLSessionTaskDelegate>,<NSURLSessionDataDelegate>,<NSURLSessionDownloadDelegate>和<NSURLSessionDelegate>,管理 NSURLSession 对象,该类的方法基于 GCD ,封装了对于网络访问的异步请求。
AFHTTPSessionManager 是 AFURLSessionManager 的一个子类,用来创建和管理 HTTP 请求。该类对于网络访问常见的 GET/POST/HEAD/DELETE 等方法进行了封装,默认的回调是在主线程执行的(可以自行设置 completionQueue,在子线程完成回调)。
2.该库还包括的类有:
AFURLResponseSerialization:
用来创建response Serializer,来处理来自服务器的响应,并使用 GET / POST 等方法处理返回的信息,默认的 response serializer 是 AFJSONResponseSerializer,此外可以针对 XML/PropertyList/Image 等设置相应的response serializer
AFURLRequestSerialization:
用来管理request Serializer,设置网络请求的各项参数,包括字符串编码、是否允许蜂窝网络访问、缓存策略、cookies 处理、请求超时间隔、请求头、请求体等。默认的 request Serializer 是 AFJSONRequestSerializer,此外可以针对 XML/PropertyList/Image 等设置相应的 request serializer
AFSecurityPolicy:
用来管理网络相关的安全策略等。 SSL 安全验证类型有如下三种,默认是 AFSSLPinningModeNone 类型,另外通过 SSL 证书和密钥可以增加请求的安全性,避免请求被劫持和攻击
AFNetworkReachabilityManager:
用来监测网络状态的变化。这个类和苹果官方提供的 Reachability 类功能类似,但是功能更加强大,不仅增加了更多的公共属性,也增加了状态变更闭包(block)操作,还增加了通知标志串。
其他:主要是一些基于 AFNetworking 的一些UIKit策略的封装,包括 UIImage、UIImageView、UIRefreshControl等。
3.使用方法
一般步骤
1.创建 manager;
2.设置响应或者请求的 serializer(默认为支持 JSON 格式,其他格式需要设置);
3.设置请求的各项参数;
4.通过 manager 执行请求的方法;
(1)GET 请求(XML 和 JSON,使用 KissXML 解析)
(2)POST 请求
(3)POST 上传
(4)设置安全证书
(5)UIKIT + AFNetworking