Results 12 comments of Andy

@295060456 多谢支持,提出宝贵建议,关于userInfo 如果是我自己app开发可能会改成model,但是选择开源出来,model的属性 不一定能满足大家的业务需求,NSDictionary 更自由一些。

从图上看,应该是timeoutInterval 触发了kvo崩溃,你也可以看下 公共配置或单次请求是否设置了timeoutInterval,如果没有可以 公共配置的timeoutInterval赋值看能否解决 @v4guoguo

setupBaseConfig 只启动时调用一次 会把这些配置 赋给ZBRequestEngine单例,ZBConfig销毁 也无所谓。这个我在看一下timeoutInterval的逻辑,如果有解决方案,我在来@你 @v4guoguo

调研了一番,没有复现。猜测,AF timeoutInterval多次添加和移除观察者,但添加和移除的次数不相同造成的异常。在不动AF代码的情况下,那只能不频繁给timeoutInterval赋值 解决了,AF本身的超时时间就是60秒和你的一样,你可以不用设置这个属性,搜索headersAndTimeConfig方法,把里面的 self.requestSerializer.timeoutInterval=request.timeoutInterval; 注释掉。 另外我注意到你在setupBaseConfig方法内 ,有token赋值,如果你的token是动态的 ,不要在setupBaseConfig内设置,setupBaseConfig是基础配置 ,只调用一次(除非你每次请求手动调用,不建议这么做)。 可以在setRequestProcessHandler方法内 进行Token配置,setRequestProcessHandler每次请求都会调用,具体参照demo内的RequestTool类 @v4guoguo

使用ip 代理服务器访问网络? @PPLLock

我查了下 基本上都使用 NSURLSessionConfiguration 的 requestCachePolicy 进行配置,这个与我的请求库配置冲突。我这有另外一个解决方案,你可以试试看能否解决你的需求,我更新了代码,你重新下载,然后在demo实验下 app启动时 会调用 插件方法setRequestProcessHandler,你可以在RequestTool类中进行配置,所有的网络请求 都会经过这个插件 //预处理 请求插件 [ZBRequestManager setRequestProcessHandler:^(ZBURLRequest * _Nullable request, id _Nullable __autoreleasing * _Nullable setObject) { request.server=@"http://192.168.1:1";//使用ip 代替请求地址 }]; 在请求配置时使用 server和path组合 [ZBRequestManager...

不客气,反馈对我也是提高。我又更新了代码,你更新下,支持请求失败重新配置 请求对象了 你需要在两个方法设置 1 公共配置 setupBaseConfig 内设置重连次数 2 失败插件 setErrorProcessHandler 内重设 request.server [ZBRequestManager setupBaseConfig:^(ZBConfig * _Nullable config) { config.retryCount=1; }]; [ZBRequestManager setErrorProcessHandler:^(ZBURLRequest * _Nullable request, NSError * _Nullable error) {...

端口拼在ip后面 比如 http://192.168.1.1:5000 开关需要 你自己维护,比如你工程有单例吧,设置一个BOOL值,在setErrorProcessHandler方法内 用该值判断是否需要使用ip,开关方法改动BOOL值即可 @PPLLock

在请求时使用 server和path组合 不要使用request.url [ZBRequestManager requestWithConfig:^(ZBURLRequest *request){ request.server=@"https://www.kankezw.com"; request.path=@"/du/2/2021/8445312.html"; } [ZBRequestManager setErrorProcessHandler:^(ZBURLRequest * _Nullable request, NSError * _Nullable error) { request.server=@"192.168.1.1:8080"; }]; @PPLLock