SGURLSessionTask
适用于 iOS 项目的简单易用的网络封装。您可以快速将其集成到项目中,最重要的是,您可以减少连接到服务器接口所需的时间,从而节省时间来做一些有意义的事情。
SGURLSessionTask *task = [SGURLSessionTask new];
task.externalURL(@"/api/xxx").then(^(SGBaseResponse *response) {
//do something...
}).catchError(^(NSError *error) {
//do something...
}).resum();
AFNetWorking-3.0 和 YYModel,PromiseKit,但您可以轻松切换到其他对应的框架。
SGURLSessionTask 基于使用
配置
打开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
- 在您的 Podfile 中添加 pod 'SGURLSessionTask'。
- 运行 pod install 或 pod update。
- 导入 <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();
AFNetWorking-3.0、YYModel、PromiseKit 这三个框架,但是如果你不喜欢,你也可以轻易地换成其他相对应的框架
SGURLSessionTask 是基于使用方法
配置
打开 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.0 和 YYModel
更新或者替换更新或者替换 AFNetWorking-3.0,你只需要修改一下SGURLSessionTask.m中的(PMKPromise *)_resume方法。
更新或者替换 YYModel,你只需要修改一下SGURLTaskConfigure的**- (id)responseFromJsonDic**方法
安装
CocoaPods
- 在Podfile中加入pod 'SGURLSessionTask'
- 执行pod install或者pod update.
- 在需要使用的文件中导入<SGURLSessionTask/SGURLSessionTask.h>.