AFNetworking的二次封装
在iOS开发中,对于网络请求的封装,大部分人用的都是AFNetworking
。对其的二次封装也有不少。前段时间,刚刚需要重构公司的APP,所以就重构了下网络请求。
先放代码:XTNetworking
框架结构
XTNetworking
主要是使用了AFNetworking
作为网络请求。YYCache
做为缓存。这两部分,如果项目里面已经存在可以不做添加。
主要的文件:
XTNetworkConfigureManager
网络库常用配置管理类(可以根据自己的需求自定义)。主要使用配置整个网络请求的配置信息。比如用户的登录code,全局控制是否打印请求结果等。
XTApiRequest
这是所有请求类的封装,里面包含了请求的设置、请求方法、以及数据处理。也是整个库的核心
1、以下的属性都是设置当前的网络请求。
/** 请求的缓存类型,默认不使用缓存 */
@property (nonatomic, assign) XTApiRequestCacheType cacheType;
/** 是否开启返回结果打印,默认关闭 */
@property (nonatomic, assign) BOOL isOpenResultLog;
/** 移除通用参数,默认不移除 */
@property (nonatomic, assign) BOOL removeCommonParameters;
/** 请求超时时间 默认20秒 */
@property (nonatomic, assign) NSTimeInterval timeoutInterval;
/** 处理数据的 block(异步进行)*/
@property (nonatomic, copy) XTApiRequestHandleDataBlock handleDataBlock;
/** 请求数据格式 */
@property (nonatomic, assign) XTApiRequestSerializer requestSerializer;
/** 响应数据格式 */
@property (nonatomic, assign) XTApiResponseSerializer responseSerializer;
/** 是否需要继续保持对象,当存在异步上传图片 */
@property (nonatomic,assign) BOOL needRetainWhenAsyncUploadFile;
2、以下的方法都是发起网络请求。
/**
发起请求
@param method 请求方式
@param urlString 请求地址