项目中网络请求框架使用Retrofit+OKHTTP,如果需要进行参数加密呢?第一想法就是通过拦截器实现,Retrofit及OKHTTP都支持拦截器,但是拦截器却没有提供获取请求参数内容的方法,实现起来比较复杂需要修改框架源码,那么有没有比较简单的方法呢?
Retrofit支持自定义client,我们可以继承OkClient,获取到参数进行相关的处理
public class MyClient extends OkClient {
public MyClient(OkHttpClient client) {
super(client);
}
@Override
public Response execute(Request request) throws IOException {
//在这里获取到request后就可以做任何事情了
return super.execute(request);
}
}
RestAdapter.Builder builder = new RestAdapter.Builder();
builder.setClient(new MyClient(new OkHttpClient()));
RestAdapter adapter = builder.build();