OkHttp3拦截器动态替换/改变host,schema等参数
2021-07-12 本文已影响0人
Aix码哥
背景
工作中遇到需要动态替换host,使用线下环境的host来进行测试回归,如将produce.example.com动态替换为使用test.example.com
解决方案
1.新创建HttpUrl对象newHttpUrl,使用host(),scheme()等方法设置新的host,schema等参数。
2.新创建Request对象newRequest,使用url()方法将新创建的newHttpUrl设置为newRequest的url。
3.通过反射修改Call中的originalRequest为newRequest对象实现动态替换/改变host,schema等参数。
4.在MyEventListener的callStart(Call call)方法中判断host为produce.example.com时调用NetUtil.replaceOriginalRequest(call, request)
代码
![](https://img.haomeiwen.com/i4626694/0420c04708bf6e1d.png)
![](https://img.haomeiwen.com/i4626694/a0fe0e647794613f.png)