AFNetworking一直是iOS和Mac OS X上最热门的网络库。之前一直用的是2.x版本,前不久更新了3才发现原来的代码一堆错。原来为了配合iOS7网络接口的调整,AFN3.x取消了AFHTTPRequestOperationManager及相关的类,取而代之的是AFURLSessionManager。如果为了兼容iOS 6、Mac OS X 10.8或更低版本,你仍然可以选择AFHTTPRequestOperationManager。
安装
最方便的就是用CocoaPods了,在Podfile中加入:
|
|
创建manger
苹果的文档中推荐开发者通过继承AFHTTPSessionManager来提供一些通用的配置,在整个应用中可以共享一个单例。这样就避免了在每次发送http请求时进行三次握手,一定程度上提高了效率。
如果访问的服务器是同一个,可以用baseURL来初始化,这样发送请求时只需要相对url。
|
|
也可以用配置对象来初始化
|
|
配置Serializer
|
|
常用方法
- GET
|
|
- POST
|
|
- 下载
|
|
- 上传
|
|
也可以使用NSURLSessionUploadTask上传,它还支持后台上传:
|
|
NetworkActivityIndicator
AFNetworking提供了在网络请求繁忙时,在状态栏显示小菊花的功能。这个功能默认是关闭的,需要手动打开:
|
|
需要导入包:
|
监测网络状态
AFNetworkReachabilityManager提供了一个单例对象来监测网络,共有四种状态,分别是未知、没有网络连接、WWAN连接、WiFi连接:
|
|
|
|
总结
跟上一个版本相比,AFN3最大的变化就是AFHTTPRequestOperationManager没有了,换成了AFURLSessionManager。
这些只是AFN3中最基本的用法,还有更多强大的功能,共同学习!
最后附上AFN的GitHub地址。