参考链接:https://www.cnblogs.com/zhang-cb/p/6220957.html
/**
* 请求拦截器,修改请求header
*/
private class RequestInterceptor implements Interceptor{
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request()
.newBuilder()
.addHeader("Content-Type", "text/html; charset=UTF-8")
// .addHeader("Accept-Encoding", "*")
.addHeader("Connection", "keep-alive")
.addHeader("Accept", "*/*")
.addHeader("Access-Control-Allow-Origin", "*")
.addHeader("Access-Control-Allow-Headers", "X-Requested-With")
.addHeader("Vary", "Accept-Encoding")
// .addHeader("Cookie", "add cookies here")
// .tag("url+ object")
.build();
Log.v("zcb", "request:" + request.toString());
Log.v("zcb", "request headers:" + request.headers().toString());
return chain.proceed(request);
}
}
使用方法
private OkHttpClient getOkHttpClient() {
//定制OkHttp
OkHttpClient.Builder httpClientBuilder = new OkHttpClient
.Builder();
//设置超时时间
httpClientBuilder.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
httpClientBuilder.writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
httpClientBuilder.readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
//使用拦截器
httpClientBuilder.addInterceptor(new RequestInterceptor());
httpClientBuilder.addInterceptor(new LogInterceptor());
return httpClientBuilder.build();
}