概述
为了简化后期手机客户端与服务器调试,特对此进行了各个环境的封装,本仓库为 iOS 版本,其它还有 Java(安卓通用)版本、服务器版本。
特点
- 采用多线程异步请求机制
- 支持请求的 URL 带有中文
进度
- 完成基本的 GET、POST、上传、下载等操作
- 完成 delegate 向 block 的转换
- 完成上传、下载的实时进度
- 支持无网通知
安装方法
使用 cocoapods
pod 'QSHttp-OC', '~> 1.1.1'
使用方法
GET 方法的示例:
- (void)get_http {
QSHttpManage *mange = [[QSHttpManage alloc] init];
[mange GET:@"http://www.eechot.ga/server/QSHttp/GET/天气" param:nil success:^(id _Nonnull rspObject) {
NSLog(@"响应数据 %@", rspObject);
} failure:^(NSError * _Nonnull error) {
NSLog(@"失败 %@", error);
}];
}
POST 方法的示例:
- (void)post_http {
QSHttpManage *mange = [[QSHttpManage alloc] init];
[mange POST:@"http://www.eechot.ga/server/QSHttp/POST" param:nil success:^(id _Nonnull rspObject) {
NSLog(@"响应数据 %@", rspObject);
} failure:^(NSError * _Nonnull error) {
NSLog(@"失败 %@", error);
}];
}
下载文件示例:
- (void)download_http {
QSHttpManage *mange = [[QSHttpManage alloc] init];
[mange download:@"http://www.eechot.ga/server/QSHttp/Download" param:nil storagePath:@"/Users/yyd-wlf/Desktop/QSHttpFile" progress:^(float progress) {
int progressInt = progress * 100;
NSLog(@"下载进度 %d%%", progressInt);
} success:^(id _Nonnull rspObject) {
NSLog(@"响应数据 %@", rspObject);
} failure:^(NSError * _Nonnull error) {
NSLog(@"失败 %@", error);
}];
}
上传数据 (NSData) 示例:
- (void)uploadData_http {
QSHttpManage *mange = [[QSHttpManage alloc] init];
NSData *data = [NSData dataWithContentsOfFile:@"/Users/yyd-wlf/Desktop/QSHttpFile/nginx-1.16.0.tar.gz"];
[mange upload:@"http://www.eechot.ga/server/QSHttp/Upload" fileData:data progress:^(float progress) {
int progressInt = progress * 100;
NSLog(@"上传进度 %d%%", progressInt);
} success:^(id _Nonnull rspObject) {
NSLog(@"响应数据 %@", rspObject);
} failure:^(NSError * _Nonnull error) {
NSLog(@"失败 %@", error);
}];
}
上传文件示例:
- (void)uploadFile_http {
QSHttpManage *mange = [[QSHttpManage alloc] init];
[mange upload:@"http://www.eechot.ga/server/QSHttp/Upload" filePath:@"/Users/yyd-wlf/Desktop/QSHttpFile/nginx-1.16.0.tar.gz" progress:^(float progress) {
int progressInt = progress * 100;
NSLog(@"上传进度 %d%%", progressInt);
} success:^(id _Nonnull rspObject) {
NSLog(@"响应数据 %@", rspObject);
} failure:^(NSError * _Nonnull error) {
NSLog(@"失败 %@", error);
}];
}
许可证
所有源代码均根据MIT许可证进行许可。