测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2017年3月 |
Maintained by YXNetWorking.
依赖于 | |
MJExtension | >= 0 |
MBProgressHUD | ~> 0.9.2 |
AFNetworking | ~> 3.1.0 |
YXNetWorking 是基于 AFNetworking 封装的 iOS 网络库,其实现了一套简易的网络框架,易于集成,适用于中小型项目中使用。
YXNetWorking 的基本思想是将每一个网络请求封装成对象YXHttpRequest,将每一个网络响应回来的数据也封装成对象YXHttpResponse,将每一种类型的API对应放在XXXAPI类中统一管理,使用YXAPIParser统一进行服务器返回JSON的解析,并在XXXAPI类中进行具体网络请求的二次数据解析。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//统一配置网络请求的地址
[YXNetWorkConfig shareInstance].baseUrl = @"http://api.www.xxx";
return YES;
}
#define NET_POP_ADS_TAG @"NET_POP_ADS_TAG"//首页弹窗广告
@interface YXPopAdAPI : YXBaseAPI
- (YXHttpRequest *)requestPopAd;
@end
@implementation YXPopAdAPI
#pragma mark - 请求接口
- (YXHttpRequest *)requestPopAd{
NSString *url = [NSString stringWithFormat:@"%@app=popads&act=getPopAds", [YXNetWorkConfig shareInstance].baseUrl];
YXHttpRequest * request = [[YXHttpRequest alloc]init];
request.url = url;
request.identity = NET_POP_ADS_TAG;
[self sendRequest:request];
return request;
}
#pragma mark - 分解网络请求
- (void)parseWithResponse:(YXHttpResponse *)response{
[super parseWithResponse:response];
if ([response.request.identity isEqualToString:NET_POP_ADS_TAG]) {
//弹窗广告的返回数据解析
[self parsePopAdsWithResponse:response];
}
}
#pragma mark - 解析网络返回数据
- (void)parsePopAdsWithResponse:(YXHttpResponse *)response{
NSString * string = [YXAPIParser parseToStringWithKey:nil response:response];
response.parseResult = string;
[self invokeRequestFinishedDelegateWithResponse:response];
}
@property(strong, nonatomic) YXPopAdAPI * api;
//初始化API,并设置YXHttpDelegate代理
self.api = [[YXPopAdAPI alloc]init];
self.api.delegate = self;
[MBProgressHUD showMessage:@"开始加载..." toView:self.view];
[self.api requestPopAd];
#pragma mark - YXHttpDelegate
- (void)requestFinishedWithResponse:(YXHttpResponse *)response{
[MBProgressHUD hideHUDForView:self.view];
[MBProgressHUD showSuccess:@"请求成功"];
NSLog(@"%@,result:%@",response.request.identity,response.parseResult);
}
- (void)requestFailedWithResponse:(YXHttpResponse *)response{
[MBProgressHUD hideHUDForView:self.view];
[MBProgressHUD showError:@"请求失败"];
NSLog(@"请求失败:%@ 原因:%@",response.request.identity,[response.systemError localizedDescription]);
}
您可以在 Podfile 中添加以下一行代码来使用 YXNetWorking:
pod 'YXNetWorking'
YXNetWorking 依赖于 AFNetworking,可在 AFNetworking README 中找到更多关于依赖版本的信息。
YXNetWorking 在 MIT 协议下被许可使用。查阅 LICENSE 文件获取更多信息。