简介
AFNetworking是目前iOS最流行的网络请求库,其内部实现封装了NSURLSession的网络请求。
AFNetworking的5个模块
NSURLSession
- 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;
- 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
- AFHTTPRequestSerializer:
AFHTTPRequestSerializer可以根据http请求方法,请求url,请求参数创建NSMutableURLRequest,并且可以设置请求报文的请求头部内容。方法如下:
- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
URLString:(NSString *)URLString
parameters:(nullable id)parameters
error:(NSError * _Nullable __autoreleasing *)error;
-
AFJSONRequestSerializer和AFPropertyListRequestSerializer:
AFJSONRequestSerializer继承自AFHTTPRequestSerializer,功能是将请求参数编码成json数据。类似,AFPropertyListRequestSerializer的功能是将请求参数编码成propertyList。 -
AFHTTPResponseSerializer:
AFHTTPResponseSerializer提供了接口来验证响应报文的正确性。方法如下:
- (BOOL)validateResponse:(nullable NSHTTPURLResponse *)response
data:(nullable NSData *)data
error:(NSError * _Nullable __autoreleasing *)error;
- AFJSONResponseSerializer, AFXMLParserResponseSerializer, AFPropertyListResponseSerializer, AFImageResponseSerializer
这些类都继承自AFHTTPResponseSerializer,除了验证响应报文的正确性外,主要是将响应报文的响应主体解析成相应的数据格式。
网友评论