YXNetWorking 1.0.0

YXNetWorking 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2017年3月

Maintained by YXNetWorking.



 
依赖于
MJExtension>= 0
MBProgressHUD~> 0.9.2
AFNetworking~> 3.1.0
 

  • maoyuxiang

YXNetWorking 是什么

YXNetWorking 是基于 AFNetworking 封装的 iOS 网络库,其实现了一套简易的网络框架,易于集成,适用于中小型项目中使用。

YXNetWorking 的基本思想

YXNetWorking 的基本思想是将每一个网络请求封装成对象YXHttpRequest,将每一个网络响应回来的数据也封装成对象YXHttpResponse,将每一种类型的API对应放在XXXAPI类中统一管理,使用YXAPIParser统一进行服务器返回JSON的解析,并在XXXAPI类中进行具体网络请求的二次数据解析。

YXNetWorking 的使用

1. 使用YXNetWorkingConfig统一配置网络请求的地址

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //统一配置网络请求的地址
    [YXNetWorkConfig shareInstance].baseUrl = @"http://api.www.xxx";

    return YES;
}

2. 创建对应的API类,例如YXPopAdAPI

#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];
}

3. 在对应的ViewController中初始化并使用(注意:XXXAPI必须为属性)

@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 中找到更多关于依赖版本的信息。

相关的使用教程和 Demo

  • 其使用方法可以在 YXNetWorkingDemo 中查看

协议

YXNetWorking 在 MIT 协议下被许可使用。查阅 LICENSE 文件获取更多信息。