Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xiaozhuxiong121/pgnetworkhelper
PINCache做为AFNetworking缓存层,将AFNetworking请求的数据缓存起来,支持取消当前网络请求,以及取消所有的网络请求,除了常用的Get,Post方法,也将上传图片以及下载文件进行了封装,同样支持同步请求,使用方法极其简单。
https://github.com/xiaozhuxiong121/pgnetworkhelper
afnetworking cocoapods ios objective-c pgnetworkhelper pincache
Last synced: 4 months ago
JSON representation
PINCache做为AFNetworking缓存层,将AFNetworking请求的数据缓存起来,支持取消当前网络请求,以及取消所有的网络请求,除了常用的Get,Post方法,也将上传图片以及下载文件进行了封装,同样支持同步请求,使用方法极其简单。
- Host: GitHub
- URL: https://github.com/xiaozhuxiong121/pgnetworkhelper
- Owner: xiaozhuxiong121
- License: mit
- Created: 2016-11-26T03:13:29.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-14T14:26:53.000Z (over 7 years ago)
- Last Synced: 2024-03-14T23:23:56.445Z (11 months ago)
- Topics: afnetworking, cocoapods, ios, objective-c, pgnetworkhelper, pincache
- Language: Objective-C
- Homepage:
- Size: 54.7 KB
- Stars: 131
- Watchers: 6
- Forks: 29
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![PGNetworkHelper](http://upload-images.jianshu.io/upload_images/1340308-6532130a70265dab.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](https://github.com/xiaozhuxiong121/PGNetworkHelper)
[![CocoaPods compatible](https://img.shields.io/cocoapods/v/PGNetworkHelper.svg)](https://cocoapods.org/pods/PGNetworkHelper)
![](https://img.shields.io/badge/platform-iOS-red.svg) ![](https://img.shields.io/badge/language-Objective--C-orange.svg)
![](https://img.shields.io/badge/license-MIT%20License-brightgreen.svg)
[![](https://img.shields.io/badge/jianshu-piggybear-red.svg)](http://www.jianshu.com/u/3740632b2002)PINCache做为AFNetworking3.x缓存层,将AFNetworking3.x请求的数据缓存起来,支持取消当前网络请求,以及取消所有的网络请求,除了常用的Get,Post方法,也将上传图片以及下载文件进行了封装,使用方法极其简单。
> PGNetworkHelper屏蔽了AFNetworking自带的缓存,并将PINCache缓存的key也用**MD5加密**,确保数据的安全。
>
> PGNetworkHelper也支持同步请求**AFNetworking本身就带有缓存策略,为什么要使用PINCache作为缓存呢?**
> 第一,经过测试PINCache缓存比AFNetworking自带的缓存要快。
> 第二,PINCache是将缓存数据进行了加密,更加安全。# CocoaPods安装
```
pod 'PGNetworkHelper', '>= 2.0'
```
# 使用
``` oc
#import//设置baseUrl
[PGNetAPIClient baseUrl:@"baseUrl"];
//设置SSL
[PGNetAPIClient policyWithPinningMode:AFSSLPinningModeNone];
//设置缓存路径
//多用户一般用userId来保存每个用户的缓存数据
[PGNetworkCache pathName:@"userId"];//GET请求 只需要将cache设置为true就可以自动缓存
[PGNetworkHelper GET:@"yourUrlString" parameters:nil cache:false responseCache:nil success:^(id responseObject) {
NSLog(@"responseObject = %@", responseObject);
} failure:^(NSError *error) {
NSLog(@"error = %@", error);
}];//POST请求 只需要将cache设置为true就可以自动缓存
[PGNetworkHelper POST:@"yourUrlString" parameters:@{@"username":@"test",@"password":@"test"} cache:false responseCache:nil success:^(id responseObject) {
NSLog(@"responseObject = %@", responseObject);
} failure:^(NSError *error) {
NSLog(@"error = %@", error);
}];
```
# 自动缓存
```
//只需要将cache设置为true就可以自动缓存,如果不想缓存就设置cache为false
[PGNetworkHelper GET:@"yourUrlString" parameters:nil cache:true responseCache:^(id responseCache) {
NSLog(@"responseCache = %@", responseCache);
} success:^(id responseObject) {
NSLog(@"responseObject = %@", responseObject);
} failure:^(NSError *error) {
NSLog(@"error = %@", error);
}];
```
# 使用手动缓存
> 如果需要将数据先进行处理,然后在缓存也是可以的。```
//cache设置为true
[PGNetworkHelper GET:@"yourUrlString" parameters:nil cache:true responseCache:^(id responseCache) {
NSLog(@"responseCache = %@", responseCache);
} success:^(id responseObject) {
//这里进行要缓存的数据,cacheKey就是url,如果有参数的话,就把参数拼接到cacheKey后面,下次就可以直接在responseCache block里面获取了
[PGNetworkCache saveResponseCache:responseObject forKey:@""];
} failure:^(NSError *error) {
NSLog(@"error = %@", error);
}];
```
# 删除缓存
```
[PGNetworkCache removeResponseCacheForKey:@"cacheKey"];
```# 删除所有的缓存
```
[PGNetworkCache removeAllResponseCache];
```# 同步请求
```
#import
[PGNetworkHelper synchronouslyGET:@"yourUrlString" parameters:nil cache:true responseCache:^(id responseCache) {
NSLog(@"responseCache = %@", responseCache);
} success:^(id responseObject) {
NSLog(@"responseObject = %@", responseObject);
} failure:^(NSError *error) {
NSLog(@"error = %@", error);
}];
```
# 取消当前的网络请求
```
NSURLSessionTask *task = [PGNetworkHelper GET:@"api/user/login.json" parameters:nil cache:false responseCache:nil success:^(id responseObject) {
NSLog(@"responseObject = %@", responseObject);
} failure:^(NSError *error) {
NSLog(@"error = %@", error);
}];
[task cancel]; //取消当前网络请求
```# 取消所有的网络请求
```
[PGNetworkHelper cancelAllOperations];
```# 上传图片
```
/**
* 上传图片文件
*
* @param URL 请求地址
* @param parameters 请求参数
* @param images 图片数组
* @param name 文件对应服务器上的字段
* @param fileName 文件名
* @param mimeType 图片文件的类型,例:png、jpeg(默认类型)....
* @param progress 上传进度信息
* @param success 请求成功的回调
* @param failure 请求失败的回调
*
* @return 返回的对象可取消请求,调用cancle方法
*/
+ (__kindof NSURLSessionTask *)uploadWithURL:(NSString *)URL
parameters:(NSDictionary *)parameters
images:(NSArray *)images
name:(NSString *)name
fileName:(NSString *)fileName
mimeType:(NSString *)mimeType
progress:(HttpProgress)progress
success:(HttpRequestSuccess)success
failure:(HttpRequestFailed)failure;
```# 下载文件
```
/**
* 下载文件
*
* @param URL 请求地址
* @param fileDir 文件存储目录(默认存储目录为Download)
* @param progress 文件下载的进度信息
* @param success 下载成功的回调(回调参数filePath:文件的路径)
* @param failure 下载失败的回调
*
* @return 返回的对象可取消请求,调用cancle方法
*/
+ (__kindof NSURLSessionTask *)downloadWithURL:(NSString *)URL
fileDir:(NSString *)fileDir
progress:(HttpProgress)progress
success:(void(^)(NSString *filePath))success
failure:(HttpRequestFailed)failure;
```# 缓存数据
```
[PGNetworkCache saveResponseCache:@"CacheObject" forKey:@"cacheKey"];
```
# 获取缓存数据
```
[PGNetworkCache getResponseCacheForKey:@"cacheKey"];
```# 许可证
PGNetworkHelper 使用 MIT 许可证,详情见 LICENSE 文件。