XTReq 4.4.2

XTReq 4.4.2

akateason 维护。



 
依赖
AFNetworking= 4.0.0
XTFMDB>= 0
YYModel>= 0
SVProgressHUD>= 0
ReactiveObjC>= 0
 

XTReq 4.4.2

  • teason

XTReq

cocoapods

pod 'XTReq'
#import "XTReq.h"

XTRequest

基于 XTFMDB & AFNetworking & ReactiveCocoa 构建

  1. 共享一个管理者
  2. 异步和同步
  3. GET / POST / PUT,快速添加 HTTP header / formdata / rawbody
  4. 记录结果
  5. 显示 hud
  6. 取消所有请求数据
  7. 上传图像
  8. 下载
  9. 可访问性
  10. RAC 信号

XTCacheRequest

  1. 持久化保存请求的响应。
  2. 三种保存请求的策略。
  3. 可以控制在服务器崩溃或出现错误时是否保存。

  • 请参考

XTRequest

async

[XTRequest GETWithUrl:kURLstr
            header:nil
            hud:YES
            parameters:nil
            taskSuccess:^(NSURLSessionDataTask *task, id json) {

        } fail:^{

    }] ;

原始内容

[XTRequest POSTWithURL:url
                header:
                param:
                rawBody:
                hud:
                success:
                fail: ] ;

同步

id json = [XTRequest syncWithReqMode:
                                 url:
                              header:
                              parameters:] ;

XTCacheRequest

在appDidLaunch中进行准备

[XTCacheRequest configXTCacheReqWhenAppDidLaunchWithDBName:@"yourDB"] ;

XTCacheRequest 判断结果指定主函数

@param reqMode         XTRequestMode               get / post mode .
@param url             string
@param hud             bool
@param header          dic                         HTTP header if has .
@param param           dic                         param if has .
@param body            str                         post rawbody if has .
@param cachePolicy     XTReqPolicy                 req policy .
@param overTimeIfNeed   INT (seconds)               only in XTReqPolicyOverTime mode .
@param completion      (XTReqSaveJudgment(^)(BOOL isNewest, id json))completion
PARAM  isNewest          : isCacheOrNewest
PARAM  json              : respObj
RETURN XTReqSaveJudgment : judge If Need Cache

XTReqPolicy

typedef NS_OPTIONS(NSUInteger, XTReqPolicy) {
XTReqPolicy_NeverCache_WaitReturn   = XTResponseCachePolicyNeverUseCache | XTResponseReturnPolicyWaitUtilReqDone ,      // DEFAULT
XTReqPolicy_AlwaysCache_WaitReturn  = XTResponseCachePolicyAlwaysCache | XTResponseReturnPolicyWaitUtilReqDone ,
XTReqPolicy_OverTime_WaitReturn     = XTResponseCachePolicyOverTime | XTResponseReturnPolicyWaitUtilReqDone ,

XTReqPolicy_NeverCache_IRTU         = XTResponseCachePolicyNeverUseCache | XTResponseReturnPolicyImmediatelyReturnThenUpdate ,
XTReqPolicy_AlwaysCache_IRTU        = XTResponseCachePolicyAlwaysCache | XTResponseReturnPolicyImmediatelyReturnThenUpdate ,
XTReqPolicy_OverTime_IRTU           = XTResponseCachePolicyOverTime | XTResponseReturnPolicyImmediatelyReturnThenUpdate ,
} ;

处理脏数据

使用XTReqSaveJudgment块

  • XTReqSaveJudgment_willSave
  • XTReqSaveJudgment_NotSave
[XTCacheRequest cacheGET:kURLstr
                parameters:nil
                judgeResult:^XTReqSaveJudgment(id json) {
                    if (!json) {
                        return XTReqSaveJudgment_NotSave ; // dirty data will not save
                    }
                    else {
                        [self showInfoInAlert:[json yy_modelToJSONString]] ;
                        return XTReqSaveJudgment_willSave ;
                    }
}] ;