AFNetworking:一个让你不再害怕网络请求的库

快速上手:

使用 CocoaPods 安装:

结构

NSURLConnection

  • AFURLConnectionOperation
  • AFHTTPRequestOperation
  • AFHTTPRequestOperationManager

NSURLSession (iOS 7 / Mac OS X 10.9)

  • AFURLSessionManager
  • AFHTTPSessionManager

序列化

  • <AFURLRequestSerialization>
    • AFHTTPRequestSerializer
    • AFJSONRequestSerializer
    • AFPropertyListRequestSerializer
  • <AFURLResponseSerialization>
    • AFHTTPResponseSerializer
    • AFJSONResponseSerializer
    • AFXMLParserResponseSerializer
    • AFXMLDocumentResponseSerializer (Mac OS X)
    • AFPropertyListResponseSerializer
    • AFImageResponseSerializer
    • AFCompoundResponseSerializer

其他功能:

  • AFSecurityPolicy
  • AFNetworkReachabilityManager

 

 

用法:

网络请求管理:

AFHTTPRequestOperationManager 封装了通过 HTTP 方式与web 应用服务器通信的通用操作, 包括 请求的创建, 服务器响应信息的序列化, 联网状态的监控和 安全.

GET 请求:

POST 请求: 以URL编码方式提交表单:

POST 请求 含有文件上传的表单:


 

AFURLSessionManager:

AFURLSessionManager,创建并管理一个 NSURLSession 对象.这个NSURLSession对象,基于一个指定的NSURLSessionConfiguration对 象.NSURLSessionConfiguration 对象,遵循<NSURLSessionTaskDelegate>, <NSURLSessionDataDelegate><NSURLSessionDownloadDelegate> 和 <NSURLSessionDelegate>协议.

创建一个下载任务:

创建一个上传任务:

创建一个单次含有多个信息的有进度指示的上传任务:

创建一个数据任务:


请求序列化

请求序列化器,通过将请求参数编码为查询字符串或者 HTTP 请求体,来为URL字符串创建请求.

编码为查询字符串:

编码为URL表单:

编码为JSON字符串:



联网情况的管理:

AFNetworkReachabilityManager 监测WWAN和WiFi接口的网络联通行.

  • 不要依据它来决定是否发起网络请求.你应该尝试发送网络请求.
  • 你可以依据它来选择是否自动重新发送请求.即使仍然可能失败,但接到万罗联通性变化的通知时,可能会是一个很好地重试某些操作的时机.
  • 它会是一个很好地判断请求失败的原因的工具.当网络请求失败时,告诉用户他们已经离线,要比告诉他们一些比如”请求超时”一类的准确的错误更好.

共享的网络联通性:

基于特定HTTP请求的网络连通性:


安全策略:

AFSecurityPolicy 基于 X.509 数字证书和公钥来确定服务器是否可信.

往应用中添加证书来组织中间人攻击和其他的漏洞.需要处理敏感的用户数据或者金融信息的应用,强烈建议使用基于配置好并可用的SSL的HTTPS链接来和服务器通信.

允许无效的 SSL 证书:


 

 

AFHTTPRequestOperation:

AFHTTPRequestOperation 是AFURLConnectionOperation 的子类.AFURLConnectionOperation用于使用HTTP 或 HTTPS的网络请求.AFHTTPRequestOperation封装了可接受的状态码和内容类型,这些信息将用于决定请求成功或者失败.

尽管 AFHTTPRequestOperationManager 通常是请求数据的最佳方式, AFHTTPRequestOperation 仍然是可以单独使用的.

使用 AFHTTPRequestOperation 的GET请求:

批量操作:

开源地址:https://github.com/AFNetworking/AFNetworking

2 7 收藏

资源整理者简介:yilufeng0

简介还没来得及写 :) 个人主页 · 贡献了28个资源 · 1


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer