配置拦截器
- okHttpClient = new OkHttpClient
- .Builder()
- .addInterceptor(appInterceptor) //Application应用拦截器
- .addNetworkInterceptor(networkInterceptor) //Network网络拦截器
- .build();
应用拦截器
- public Response intercept(Chain chain) throws IOException {
- Request request = chain.request();
- HttpUrl url = request.url();
- String s = url.url().toString();
- //---------请求之前-----
- Log.d(TAG,"app interceptor:begin");
- Response response = chain.proceed(request);
- Log.d(TAG,"app interceptor:end");
- //---------请求之后------------
- return response;
- }
网络拦截器
- public Response intercept(Chain chain) throws IOException {
- Request request = chain.request();
- //---------请求之前-----
- Log.d(TAG,"network interceptor:begin");
- Response response = chain.proceed(request);
- Log.d(TAG,"network interceptor:end");
- return response;
- }
简单的应用
- public class Logger implements Interceptor{
- @Override
- public Response intercept(Chain chain) throws IOException {
- Request original = chain.request();
- HttpUrl url=original.url().newBuilder()
- .addQueryParameter("source","android")
- .build();
- //添加请求头
- Request request = original.newBuilder()
- .url(url)
- .build();
- return chain.proceed(request);
- }
- }