[
]
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 



还没有评论,来说两句吧...