美文网首页
AFNetworking使用总结

AFNetworking使用总结

作者: 身体要紧_还不够 | 来源:发表于2018-09-05 15:05 被阅读0次

    简介

    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,除了验证响应报文的正确性外,主要是将响应报文的响应主体解析成相应的数据格式。

    相关文章

      网友评论

          本文标题:AFNetworking使用总结

          本文链接:https://www.haomeiwen.com/subject/dhxawftx.html