拦截器大家都很熟悉了,这里我只写自定义的拦截器
创建MyInterceptor继承Interceptor
public class MyInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
//获取原始的请求数据
Request orginRequest = chain.request();
//先获取原始的请求参数,然后再拼接起来
FormBody orginBody = (FormBody) orginRequest.body();
FormBody.Builder builder = new FormBody.Builder();
for (int i = 0; i < orginBody.size(); i++) {
String name = orginBody.name(i);
String value = orginBody.value(i);
builder.add(name, value);
}
builder.add("source", "android");
FormBody formBody = builder.build();
Request request = new Request.Builder().url(orginRequest.url()).post(formBody).build();
return chain.proceed(request);
}
}
这是最基本的自定义拦截器,其中”source”, “android”是公共参数,然后将自己要上传的参数拼接到公共参数的后面,就实现了自定义拦截
如果不了解拦截器,可以去http://blog.csdn.net/muyi_amen/article/details/58586823,里面介绍的很详细,我就不多说了