AFNetworking使用总结

简介

AFNetworking是目前iOS最流行的网络请求库,其内部实现封装了NSURLSession的网络请求。

AFNetworking的5个模块

NSURLSession

  1. AFURLSessionManager:
    AFURLSessionManager可以依据NSURLSessionConfiguration对象创建和管理NSURLSession对象;依据NSURLRequest对象创建NSURLSessionTask。方法声明如下:
- (instancetype)initWithSessionConfiguration:(nullable NSURLSessionConfiguration *)configuration;

- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
                            completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject,  NSError * _Nullable error))completionHandler;

AFURLSessionManager实现NSURLSessionDelegate, NSURLSessionTaskDelegate等协议,可以监听并处理NSURLSession和NSURLSessionTask的状态变化。
AFURLSessionManager可以设置用来处理NSURLSession和NSURLSessionTask的状态变化的block。方法如下:

- (void)setSessionDidBecomeInvalidBlock:(nullable void (^)(NSURLSession *session, NSError *error))block;

- (void)setTaskDidCompleteBlock:(nullable void (^)(NSURLSession *session, NSURLSessionTask *task, NSError * _Nullable error))block;

  1. AFHTTPSessionManager:
    AFHTTPSessionManager是AFURLSessionManager的子类,主要是提供了一些简便方法创建HTTP请求。方法如下:
- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString
                   parameters:(nullable id)parameters
                      success:(nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success
                      failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE;

Reachabilty

AFNetworkReachabilityManager提供了接口用来检测设备网络状态。

Security

和HTPPS相关。

Serialization

  1. AFHTTPRequestSerializer:
    AFHTTPRequestSerializer可以根据http请求方法,请求url,请求参数创建NSMutableURLRequest,并且可以设置请求报文的请求头部内容。方法如下:
- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
                                 URLString:(NSString *)URLString
                                parameters:(nullable id)parameters
                                     error:(NSError * _Nullable __autoreleasing *)error;
  1. AFJSONRequestSerializer和AFPropertyListRequestSerializer:
    AFJSONRequestSerializer继承自AFHTTPRequestSerializer,功能是将请求参数编码成json数据。类似,AFPropertyListRequestSerializer的功能是将请求参数编码成propertyList。

  2. AFHTTPResponseSerializer:
    AFHTTPResponseSerializer提供了接口来验证响应报文的正确性。方法如下:

- (BOOL)validateResponse:(nullable NSHTTPURLResponse *)response
                    data:(nullable NSData *)data
                   error:(NSError * _Nullable __autoreleasing *)error;
  1. AFJSONResponseSerializer, AFXMLParserResponseSerializer, AFPropertyListResponseSerializer, AFImageResponseSerializer
    这些类都继承自AFHTTPResponseSerializer,除了验证响应报文的正确性外,主要是将响应报文的响应主体解析成相应的数据格式。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • AFNetworking网络框架在iOS开发中的霸主地位已经根深蒂固,本篇将基于3.2.1版本对框架的几个核心模块...
    Lotheve阅读 8,677评论 1 26
  • IOS开源网络库AFNetworking已经成为了IOS程序开发的首选、亦可以说是必备,无数IOS的“先哲”们撰文...
    myzhing阅读 4,206评论 0 0
  • AFNetworking是iOS开发中最常用的第三方开源库之一,它主要用于进行网络请求。AFNetworking主...
    西瓜冰s阅读 15,966评论 5 28
  • 分享类型:游戏开发相关 1 将AFNetWorking文件夹导入项目 2 添加类库 Security.framew...
    韩七夏阅读 3,853评论 0 0
  • 最近又看了一遍AFNetworking的源码,跟两年前看又感觉不一样了,并且再次加深了我对HTTP和网络编程的理解...
    梅庆阅读 4,574评论 0 0

友情链接更多精彩内容