GDNetworking-X 0.1.9

GDNetworking-X 0.1.9

Journey 维护。



  • journey

GDNetworking-X

CI Status Version License Platform

安装

GDNetworking-X 可通过 CocoaPods 获取。要安装它,只需在您的 Podfile 中添加以下行:

pod 'GDNetworking-X'

作者

journey, [email protected]

许可证

GDNetworking-X 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。

设计

总体结构:离散式网络框架结构

思维导图

主要数据类图设计

使用方法

每个独立的API请求类都继承自GDBaseRequest父类。在子类中重写父类的方法以实现自定义功能

创建请求

GDNetworking-X(以下简称X)是一种离散式的网络框架,每个请求都必须创建一个继承自GDBaseRequest的类。如果接口需要传入固定参数,建议重写-initWith方法。

请求的URL类型

X支持三种URL类型:服务器类型、CDN类型、Instagram类型。目前我们项目中只有服务器和Instagram两种URL,建议独立复写请求基础地址。

服务器类型

X默认的URL类型就是服务器类型,建议仍然重写- (NSString *)baseUrl方法,返回服务器基础地址。请求的地址如"/v2/login"在- (NSString *)requestURL方法中重写。

CDN类型(外部资源网址)

此类请求必须重写-(BOOL)useCDN方法并返回YES,在- (NSString *)cdnUrl方法中返回CDN基础地址,其余同上。

Instagram类型

此类请求必须重写-(BOOL)useInsta方法并传回YES,在- (NSString *)instaUrl方法中传回insta基地址,其他同上

请求头

重写子类- (NSDictionary *)requestHeaderFieldValueDictionary方法,为请求头提供数据

请求类型

重写子类- (GDRequestType)requestType方法传回请求类型,目前支持五种请求类型

请求序列化

非必要!针对某些需要特定序列化数据的请求,重写- (GDRequestSerializerType)requestSerializerType方法,目前支持三种方式,默认序列化方式是HTTP,针对解密握手请求内置了两种加密方式,目前没有这类请求。

返回数据序列化

针对请求返回值的序列化,默认为Json格式序列化。X提供了四种返回值序列化方式。

Hook返回值

针对项目中需要对请求返回值进行数据处理,例如字典转模型的操作,X提供了hook的方式,子类中重写- (void)requestSuccessFilter方法,可以获取到返回数据进行处理,fail也是一样,提供了- (void)requestFailFilter方法。

回调

X提供了三种回调方式,SEL、block和delegate,鉴于目前项目中的代码,建议使用block回调,通过request.jsonObject和request.error分别获取返回值或者请求错误信息。

缓存

X支持根据时间和版本号来处理缓存。

下载

X支持断点续传等常规下载功能,沙盒地址请参照代码

其他

请参见demo