GitHub - AllenSWB/WBNetwork: iOS 网络请求库、基于AFN3、链式调用
/**
* 1. 在合适的地方设置默认参数, 例如AppDelegate中didFinishLaunch方法
*/
//设置好baseUrl,发起请求的时候就可以写部分URL。例如:url(@"/user/login")
WBREQUEST.baseUrlDebug = @"http://www.debug.com";//测试环境baseURL
WBREQUEST.baseUrlRelease = @"http://www.release.com";//正式环境baseURL
//默认请求参数,发起请求的时候可以不调用parameters方法,或者传入除了默认参数之外的其他参数。
WBREQUEST.defaultParameters = @{@"appid":@"",@"appPass":@""};//访问服务器的账号和密码。
//是否使用缓存,默认YES
WBREQUEST.cacheData = NO;
//发起同一请求最小时间间隔,默认1s
WBREQUEST.minRequestInterval = 2;
//添加HUD插件
[WBREQUEST wb_addPlugIn:[WBReqeustHUDPlugIn new]];
/**
* 2. 发起一个请求. 最简单可以调用url success startRequest三个方法就可以发起一个请求.
*/
WBReqeustHUDPlugIn *plugIn = (WBReqeustHUDPlugIn *)[WBREQUEST plugInWithIdentifier:@"hud"];//hud插件
plugIn.HudInView = self.view;//可以选择将hud加在self.view上而非window上
plugIn.HudText = @"正在登录...";
//网络请求
WBREQUEST.url(@"/user/login").parameters(@{@"phone":@"136********",@"passwd":@""}).success(^(NSURLSessionDataTask *task, id responsedObj){
WBLog(@"登录成功");
}).failure(^(NSURLSessionDataTask *task, NSError *error){
WBLog(@"登录失败");
}).startRequest();
/**
* 3. 同时发起多个请求
*/
WBReqeustHUDPlugIn *plugIn = (WBReqeustHUDPlugIn *)[WBREQUEST plugInWithIdentifier:@"hud"];
plugIn.isPlugInFree = YES; // 让插件失效
WBREQUEST.batchRequestTypes(@[WBPOST,WBPOST,WBPOST]).batchUrls(@[url0,url1,url2]).batchParameters(@[@{},@{},@{}]).batchRequestDone(^(NSDictionary *dic) {
//记得请求完成奖插件恢复能用
plugIn.isPlugInFree = NO;
WBLog(@"======================\ndic is %@\n================================",dic);
for (id obj in dic.allValues) {
if ([obj isKindOfClass:[NSError class]]) {
WBLog(@"obj 出现了\n有错!");
} else {
WBLog(@"obj 出现了\n数据:%@",obj);
}
}
}).startBatchRequest();
WBREQUEST.url(<#NSString * url#>).parameters(<#NSDictionary * parameters#>).success(^(NSURLSessionDataTask * task,id responseObject){
<#code#>
}).startRequest();