创建一个类 继承interceptor
post
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);
}
FormBody formBody = builder.build();
Request request = new Request.Builder().url(orginRequest.url()).post(formBody).build();
Log.i("TAG","12321");
return chain.proceed(request);
}
}
get
public class MyInterceptor implements Interceptor{
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
HttpUrl url = request.url();
String string = url.url().toString();
String resultUrl = string+"&source=android";
Request request1 = request.newBuilder().url(resultUrl).build();
return chain.proceed(request);
}
}
网络请求类
只需要在实例化时添加拦截器即可
private HttpUtils() {
//创建OkHttpClient
//创建拦截器
client = new OkHttpClient.Builder()
.addInterceptor(new MyInterceptor())
.build();
}