您的位置:首页 > 理论基础 > 计算机网络

Retrofit,Okhttp对每个Request统一动态添加header和参数(五)

2018-02-08 23:16 525 查看
文/Tamic

地址:http://blog.csdn.net/sk719887916/article/details/52189602

Header

How to Add header to Every 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()
.addHeader("header-key", "value1")
.addHeader("header-key", "value2");

Request request = requestBuilder.build();
return chain.proceed(request);
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[/code]

添加统一通用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);
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
[/code]

Parameters

How to Add Query Parameters to Every 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[/code]

Retrofit+RxJava结合系列请阅读:

Retrofit 2.0

超能实践,完美支持Https传输

Retrofit2.0

完美同步Cookie实现免登录

Retrofit 2.0 超能实践(三),轻松实现文件/图片上传

-Retrofit 2.0 超能实践(四),完成大文件断点下载

基于Retrofit2.0 封装的超好用的RetrofitClient工具类

玩转IOC,教你徒手实现自定义的Retrofit框架

Rxjava +Retrofit 你需要掌握的几个技巧,Retrofit缓存,统一对有无网络处理, 返回结果问题

Rxjava +Retrofit 如何优雅的取消网路请求
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: