基于AF的轻量级网络库二次封装

前言:从以前的ASI到AF,通常都是拿来直接用,然后上个项目中用了基于AF的YTKNetwork,这种相比之前集约型的网络请求,虽然离散但很清晰。然而项目不复杂,用YTKNetwork似乎有点杀鸡用牛刀了,于是在YTKNetwork的基础上修改封装了轻量级的网络库KKNetworking。

下面是简单介绍:

KKNetworkConfig类

(存放一些全局通用的参数)

baseUrl 服务器地址

AFSecurityPolicy 安全策略 https认证

requestMethod 请求方式 默认Post

requestTimeoutInterval 超时时间 默认20s

requestHeaderFieldValueDictionary 请求头

可在AppDelegate配置

YTKNetwork中用的最舒服的就是在基类中可以全局设置超时时间、消息请求头等基础信息,于是修改的时候把这些都放到了config类中可以全局设置。

KKNetworkRequest类

(主要使用的类)

---------------请求设置---------------

requestUrl 请求地址

requestArgument 请求参数

requestMethod 请求方式

requestTimeoutInterval 超时时间

requestHeaderFieldValueDictionary 请求头

---------------返回数据---------------

responseData,responseJSONObject,responseObject,responseString,error

isResponseSerializerTypeHTTP默认返回数据Json解析,可设置为YES,则为HTTP序列化,不对数据进行解析 (通常用于一些小型文件下载)

在request的类中

- (BOOL)statusCodeValidator 这个方法也是来自YTK,可以做一些全局的请求成功后状态码检查【比如接口返回的相关错误码统一处理】

KKNetworkManager类

(请求主要发起类)

初始化时读取config的一些配置

在处理request请求时 优先取request的参数处理

没有时取config的默认设置(如请求方式,超时时间,请求头等)

发起请求接受数据进行成功与失败的回调

KKNetworkTools类

一些常用的方法封装


这个网络库简单到几乎只封装了Get、Post请求,适合一些小型项目使用,也可以根据业务需求在这基础上进行扩展。

Demo地址:KKNetworking

你可能感兴趣的:(基于AF的轻量级网络库二次封装)