[
]
https://ZhouSa.com 接口
FireflySessionURLProtocol
注册、解注册过滤器
+(void)filter_register:(nonnull Class)filter; +(void)filter_unregister:(nonnull Class)filter; +(void)filter_unregisterAll; +(void)filter_setlist:(nullable NSArray<Class> *)list;
获取当前注册的过滤器
+(nullable NSArray<Class> *)filter_getlist;
FireflySessionURLCustomFilter(过滤器)
调用顺序
->ff_canDoWithRequest ->initWithRequest ->ff_GetLocalData 如果处理成功 则到此结束 ->didReceiveData ->didCompleteWithError
是否可以处理某个具体请求
对应NSURLProtocol::canonicalRequestForRequest
只有结果为YES时,才会有(但不一定有)后续的处理过程
+(BOOL)ff_canDoWithRequest:(NSURLRequest *_Nonnull)inRequest canonicalRequest:(NSURLRequest *_Nonnull*_Nullable)outRequest outUserData:(NSObject *_Nullable*_Nonnull)outUserData;
参数名称 | 说明 |
---|---|
inRequest | 传入请求,需要对这个请求判断,确定是否可以处理 |
outRequest | 传出请求,一般不做处理 |
outUserData | 用户数据,将在整个过滤过程中投传 |
初始化方法
-(id _Nonnull)initWithRequest:(NSURLRequest *_Nonnull)request userData:(NSObject *_Nullable)userData;
参数名称 | 说明 |
---|---|
request | 传入请求 |
userData | 用户数据,参考ff_canDoWithRequest的outUserData |
请求
@property (nonatomic,strong,readonly,nonnull) NSURLRequest * request;
参考initWithRequest的request
用户数据
@property (nonatomic,strong,readonly,nullable) NSObject *userData;
参考initWithRequest的userData
接收网络数据
-(void)ff_URLSession:(NSURLSession *_Nonnull)session dataTask:(NSURLSessionDataTask *_Nonnull)dataTask didReceiveData:(NSData *_Nonnull)data;
参数名称 | 说明 |
---|---|
session | 请求回话 |
dataTask | 数据任务 |
data | 接收的数据 |
网络请求完成
-(void)ff_URLSession:(NSURLSession *_Nonnull)session task:(NSURLSessionTask *_Nonnull)task didCompleteWithError:(NSError *_Nullable)error;
参数名称 | 说明 |
---|---|
session | 请求回话 |
dataTask | 数据任务 |
error | 错误 |
获取本地数据
-(void)ff_GetLocalDataFrom:(in unsigned long)inOffset size:(in unsigned long)inSize data:(out NSData *_Nonnull*_Nullable)outData total:(out unsigned long *_Nonnull)outTotal error:(out NSError *_Nonnull*_Nullable)outErr;
如果本地数据处理成功,则不过发起网络请求;这个方法可能会被多次调用,直到数据读取完毕。数据读取完毕的判断条件是outTotal < inSize
参数名称 | 说明 |
---|---|
inOffset | 期望读取偏移 |
inSize | 期望读取大小 |
outData | 读取出来的数据 |
outTotal | 读取出来的数据的大小 |
outErr | 错误 |
本地文件路径
+(nullable NSArray<Class> *)filter_getlist;
0
如果确定过滤器可以处理请求,且本地有缓存文件,需要在这个方法里返回本地文件路径。
清除本地文件
+(nullable NSArray<Class> *)filter_getlist;
1
清除本地文件
+(nullable NSArray<Class> *)filter_getlist;
1
获取响应数据缓存
+(nullable NSArray<Class> *)filter_getlist;
3
FireflyWebImageCacheFilter(图片缓存)
是FireflySessionURLCustomFilter的子类,重写的方法
+(nullable NSArray<Class> *)filter_getlist;
4
还没有评论,来说两句吧...