public final class HeaderInterceptor implements Interceptor {
//创建一个拦截器
//这个拦截器负责给请求添加请求头的
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();//传过来的请求,可能经过其它拦截器修改,也可能没有
String url = original.url().toString();//获取传进来的url
if (url.contains("book/") ||
url.contains("book-list/") ||
url.contains("toc/") ||
url.contains("post/") ||
url.contains("user/")){
//这些条件判断的是什么?
Request request=original.newBuilder()
.addHeader("User-Agent", "ZhuiShuShenQi/3.40[preload=false;locale=zh_CN;clientidbase=android-nvidia]") // 不能转UTF-8
.addHeader("X-User-Agent", "ZhuiShuShenQi/3.40[preload=false;locale=zh_CN;clientidbase=android-nvidia]")
.addHeader("X-Device-Id", DeviceUtils.getIMEI(AppUtils.getAppContext()))//设置一些手机数据,这里给出了手机序列号呀
.addHeader("Host", "api.zhuishushenqi.com")
.addHeader("Connection", "Keep-Alive")
.addHeader("If-None-Match", "W/\"2a04-4nguJ+XAaA1yAeFHyxVImg\"")
.addHeader("If-Modified-Since", "Tue, 02 Aug 2016 03:20:06 UTC")
.build();
return chain.proceed(request);
}
return chain.proceed(original);
}
//为什么是final?
}
Android之构建okhttp的拦截器
最新推荐文章于 2024-04-06 02:15:19 发布