GDNetworking-X 0.1.9

GDNetworking-X 0.1.9

Maintained by Journey.



  • By
  • journey

GDNetworking-X

CI Status Version License Platform

Installation

GDNetworking-X is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'GDNetworking-X'

Author

journey, [email protected]

License

GDNetworking-X is available under the MIT license. See the LICENSE file for more info.

设计

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

思维导图

主要数据类图设计

使用方法

每一个独立的API请求类继承于GDBaseRequest父类。在子类中重写父类的方法以达到自定义的目的

创建请求

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

请求的URL类型

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

Server类型

X默认的URL类型就是server类型,建议还是复写- (NSString *)baseUrl方法,传回server基地址。 请求的地址如"/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