
通过@Header 或者@Headers 去添加
区别是 @Header 需要写到参数位置,用于指定可变的头信息
而@Headers 则作用于方法,用于指定固定的头信息
如:
再比如
当然了,如果大家习惯使用通过OkHttpClient设置的话,也是可以的
原文: https://blog.csdn.net/sk719887916/article/details/52189602
添加统一通用header, 不会覆盖前面的header
okHttpClient.interceptors().add(new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Request original = chain.request()
// Request customization: add request headers
Request.Builder requestBuilder = original.newBuilder()
.addHeader("header-key", "value1")
.addHeader("header-key", "value2")
Request request = requestBuilder.build()
return chain.proceed(request)
}
})
添加统一通用header, 会覆盖前面的header
okHttpClient.interceptors().add(new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Request original = chain.request()
// Request customization: add request headers
Request.Builder requestBuilder = original.newBuilder()
.header("headerkey", "header-value")// <-- this is the important line
Request request = requestBuilder.build()
return chain.proceed(request)
}
})
统一添加参数
OkHttpClient.Builder httpClient =
new OkHttpClient.Builder()
httpClient.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request()
HttpUrl originalHttpUrl = original.url()
HttpUrl url = originalHttpUrl.newBuilder()
.addQueryParameter("apikey", "your-actual-api-key")
.build()
// Request customization: add request headers
Request.Builder requestBuilder = original.newBuilder()
.url(url)
Request request = requestBuilder.build()
return chain.proceed(request)
}
})
1、Retrofit创建2、Retrofit实现Cookie自动化管理
3、Retrofit,Gson解析,请求返回的类型不统一,假如double返回的是null
4、请求参数日志打印
5、统一请求参数添加到请求头中
6、统一请求参数添加到请求body中
7、缓存的拦截器
8、BaseUrl动态切换
9、拦截指定接口,动态更改返回值便于测试
点击传送查看
点击传送查看
1.第一种办法,依赖第三方库
配置信息如下
2.第二种办法,拦截器拦截(个人推荐第二种,可控性高)
给大家推荐一个打印日志库,很漂亮的日志结构
然后在httpClientBuilder中添加拦截
然后在httpClientBuilder中添加拦截
然后在httpClientBuilder中添加拦截
然后在httpClientBuilder中添加拦截
用了一个博客中民间大神的拦截动态替换baseUrl方法有点问题,我暂时用了一种简单粗暴方法
上边的路径是我随便写的,post中写全路径,这个优先级最高,同时设置了baseUrl不受影响
给大家一个专门写动态替换baseUrl连接 传送门
有时候我们需要返回指定值测试,可能需要空或者null等,迫于无法修改服务器返回数据,也没必要让后台修改数据,所以引发一个问题,如果拦截返回内容并修改指定字段值
然后在httpClientBuilder中添加拦截
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)