OkHttp3拦截器动态替换/改变host,schema等参数

背景

工作中遇到需要动态替换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)

代码

你可能感兴趣的:(OkHttp3拦截器动态替换/改变host,schema等参数)