SNNetworking
基于 'AFNetWoking3.x' 的一个网络组件库,旨在集中处理网络请求。当 AFNetWoking 框架更新时能够快速替换升级。
功能
- 提供 NSDictionary、NSArray、NSString 转换为 JSON 字符串
- 提供散列函数计算的便利性
- 提供快速创建单例的宏
- 支持通过创建的缓存文件夹名获取沙盒路径
- 支持自定义缓存机制
- 集中处理 GET、POST、UPLOAD、DOWNLOAD,在 "SNNetworking.h" 的分类中
- 便捷地添加自定义 COOKIES
问题
- 需要为”SNNetworking.h“手动添加分类,在分类中需要对每个接口编写设计。
安装
pod 'SNNetworking'
使用方法
创建名为”SNNetworking+helper“的”SNNetworking.h“的类别。在分类中设计接口
SNNetworking+helper.h:
#import "SNNetworking.h"
@interface SNNetworking (helper)
/**
登录列表
@param success 成功回调
@param failure 失败回调
*/
+ (void)getStoreListSuccess:(void(^)(id responseObject))success failure:(void(^)(NSError * error))failure;
+ (void)httpsTest;
@end
SNNetworking+helper.m:
#import "SNNetworking+helper.h"
@implementation SNNetworking (helper)
+ (void)getStoreListSuccess:(void(^)(id responseObject))success failure:(void(^)(NSError * error))failure {
[SNNetworking sharedManager].manager.responseSerializer = [AFJSONResponseSerializer serializer];
[SNNetworking postWithUrl:[NSString stringWithFormat:@"%@%@",kBASEURL,@"store/getStoreList.data"]
parameters:@{@"opt":@"list",
@"cell":@"13888888888",
} progress:^(double percentage) {
} success:^(id responseObject) {
NSLog(@"%s - responseObject - - %@",__func__,SNString(@"%@",responseObject));
if (success) {
success(responseObject);
}
} failure:^(NSError *error) {
NSLog(@"error - - - %@",error);
if (error) {
failure(error);
}
}];
}
+ (void)httpsTest {
[SNNetworking postWithUrl:[NSString stringWithFormat:@"%@%@",@"https://httpbin.org/",@"post"]
parameters:@{@"key": @"value"} progress:^(double percentage) {
} success:^(id responseObject) {
NSLog(@"%s - responseObject - - %@",__func__,SNString(@"%@",responseObject));
} failure:^(NSError *error) {
NSLog(@"error - - - %@",error);
}];
}
@end
你可以创建多个分类来区分不同类型或功能的接口,以便帮助您进行接口管理、维护和设计。
在实际业务逻辑层的使用中,需要导入刚刚创建的分类头文件”SNNetworking+helper.h“然后
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[SNNetworking httpsTest];
[SNNetworking getStoreListSuccess:^(id responseObject) {
//处理成功
} failure:^(NSError *error) {
//处理失败
}];
//图片试例
[SNNetworking getSN_TEST_ImageWithimgProgress:^(double percentage) {
//下载进度
} success:^(id responseObject) {
//下载完成
} failure:^(NSError *error) {
//出现了错误
}];
}
更多API的介绍可以在SNNetworking.h中查阅
需求
该项目最低支持iOS 8 和Xcode 8
感谢
感谢AFNetworking为我们项目提供便利
许可证
SNNetworking遵循MIT许可证发布。有关详细信息,请参阅LICENSE。