前言:从以前的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