SGURLSessionTask 1.0.1

SGURLSessionTask 1.0.1

sylphghost 维护。



 
依赖关系
AFNetworking~> 3.0
YYModel>= 0
PromiseKit~> 1.0
 

  • 作者
  • sylphghost

SGURLSessionTask

language Support CocoPods License MIT 

适用于 iOS 项目的简单易用的网络封装。您可以快速将其集成到项目中,最重要的是,您可以减少连接到服务器接口所需的时间,从而节省时间来做一些有意义的事情。

SGURLSessionTask *task = [SGURLSessionTask new];
task.externalURL(@"/api/xxx").then(^(SGBaseResponse *response) {
        //do something...
    }).catchError(^(NSError *error) {
        //do something...
    }).resum();

SGURLSessionTask 基于 AFNetWorking-3.0YYModelPromiseKit,但您可以轻松切换到其他对应的框架。

使用

配置

打开SGURLTaskConfigure.h文件,将服务器的默认路径填入变量SGDefaultMainURL中。

static NSString * const SGDefaultMainURL = @"your server IP ";

如果你想要支持HTTPS,将.cer文件的名称填入变量SGHttpsCerFieldName中。

static NSString * const SGHttpsCerFieldName = @"your .cer file name";

如果你的后端接口格式与我的相同,有一个固定的错误代码和信息字段。恭喜,我封装的网路请求非常适合你。请将错误代码和消息提示字段更改为与你的后端接口对应的字段。

static NSString * const SGErrorCodeKey = @"your errorCode field";
static NSString * const SGErrorMsgKey = @"your  message field";

创建一个请求

如果我们有一个POST请求,服务器地址是https://xxx.xxx.x.x.x,子路径是/api/xxx,请求参数是{flag:test}。使用SGURLSessionTask创建一个如下请求。

SGURLSessionTask *task = [SGURLSessionTask new];

task.mainURL(@"https://xxx.xxx.x.x.x").externalURL(@"/api/xxx").httpType(POST).parameters(^NSDictionary *{
        return @{flag:test};
    }).progress(^(NSProgress *progress) {
        
    }).then(^(SGBaseResponse *response) {
        // request is successful
    }).catchError(^(NSError *error) {
        // The request failed
    });

SGURLTaskSession默认的主路径是SGDefaultMainURL字段定义,默认是Get方法。因此,在大多数情况下不需要mainURL()函数。

配置全局请求参数

在SGURLTaskConfigure.m文件中,_intialization()函数,可以配置全局的请求请求头和请求参数。

    self.headerParameters = @{}.mutableCopy;
    self.parameters=@{}.mutableCopy;

捕获全局请求错误

监听SGURLSessionTaskErrorNotifaction通知。你可以获取所有SGURLSessionTask错误。

更新或替换 AFNetWorking-3.0 和 YYModel

要更新或替换其他网络请求框架,只需更改 SGURLSessionTask.m 文件中的 *-(PMKPromise )_resume 函数。更改 YYModel,只需更改 SGURLTaskConfigure。函数 - (id)responseFromJsonDic

安装

CocoaPods

  1. 在您的 Podfile 中添加 pod 'SGURLSessionTask'。
  2. 运行 pod install 或 pod update。
  3. 导入 <SGURLSessionTask/SGURLSessionTask.h>。

许可证

SGURLSessionTask 在 MIT 许可下提供。有关详细信息,请参阅 LICENSE 文件。

中文版说明

这是一个对iOS项目网络请求的中间层封装,可以快速集成到项目中。使用 SGURLSessionTask 可以快速对接后台接口,大大减少对接接口的时间。

SGURLSessionTask *task = [SGURLSessionTask new];
task.externalURL(@"/api/xxx").then(^(SGBaseResponse *response) {
        //do something...
    }).catchError(^(NSError *error) {
        //do something...
    }).resum();

SGURLSessionTask 是基于 AFNetWorking-3.0YYModelPromiseKit 这三个框架,但是如果你不喜欢,你也可以轻易地换成其他相对应的框架

使用方法

配置

打开 SGURLTaskConfigure.h 文件,填写服务器主地址 SGDefaultMainURL

static NSString * const SGDefaultMainURL = @"服务器地址 ";

如果您的服务器支持HTTPS,那就将.cer文件放入工程,然后将.cer文件的名称填写到 SGHttpsCerFieldName

static NSString * const SGHttpsCerFieldName = @".cer的文件名字";

如果你的后台基本请求跟我一样,固定有两个errorCode和errorMsg,用于判断请求成功和和信息提示,那请填写上您的服务器的对应字段。

static NSString * const SGErrorCodeKey = @"错误码名称";
static NSString * const SGErrorMsgKey = @"信息提示名称";

创建一个请求

现在有一个POST请求,服务器地址为https://xxx.xxx.x.x.x 子路径是/api/xxx,请求参数是{flag:test},用SGURLSessionTask可以这么创建请求。

SGURLSessionTask *task = [SGURLSessionTask new];

task.mainURL(@"https://xxx.xxx.x.x.x").externalURL(@"/api/xxx").httpType(POST).parameters(^NSDictionary *{
        return @{flag:test};
    }).progress(^(NSProgress *progress) {
        
    }).then(^(SGBaseResponse *response) {
        // request is successful
    }).catchError(^(NSError *error) {
        // The request failed
    });

SGURLSessionTask的默认路径是SGDefaultMainURL,一般是不用改变的,如果你有多个服务器路径,可以用几个不同Category方法来进行配置。管理接口请求,建议使用SGURLSessionTask的Category进行管理,就像Demo里面一样

配置全局请求参数

通过配置SGURLTaskConfigure.m里面_intialization()方法,你可以设置全局的请求头和请求参数

    self.headerParameters = @{}.mutableCopy;
    self.parameters=@{}.mutableCopy;

捕捉全局请求错误

监听通知 SGURLSessionTaskErrorNotifaction,你可以获取到所有请求发生的错误。

更新或者替换 AFNetWorking-3.0YYModel

更新或者替换 AFNetWorking-3.0,你只需要修改一下SGURLSessionTask.m中的(PMKPromise *)_resume方法。

更新或者替换 YYModel,你只需要修改一下SGURLTaskConfigure的**- (id)responseFromJsonDic**方法

安装

CocoaPods

  1. 在Podfile中加入pod 'SGURLSessionTask'
  2. 执行pod install或者pod update.
  3. 在需要使用的文件中导入<SGURLSessionTask/SGURLSessionTask.h>.