okhttp添加多个header_如何添加头OkHttp请求拦截?

bd96500e110b49cbb3cd949968f18be7.png

I have this interceptor that i add to my OkHttp client:

public class RequestTokenInterceptor implements Interceptor {

@Override

public Response intercept(Chain chain) throws IOException {

Request request = chain.request();

// Here where we'll try to refresh token.

// with an retrofit call

// After we succeed we'll proceed our request

Response response = chain.proceed(request);

return response;

}

}

How can i add headers to request in my interceptor?

I tried this but i am making mistake and i lose my request when creating new request:

public class RequestTokenInterceptor implements Interceptor {

@Override

public Response intercept(Interceptor.Chain chain) throws IOException {

Request request = chain.request();

Request newRequest;

try {

Log.d("addHeader", "Before");

String token = TokenProvider.getInstance(mContext).getToken();

newRequest = request.newBuilder()

.addHeader(HeadersContract.HEADER_AUTHONRIZATION, O_AUTH_AUTHENTICATION + token)

.addHeader(HeadersContract.HEADER_CLIENT_ID, CLIENT_ID)

.build();

} catch (Exception e) {

Log.d("addHeader", "Error");

e.printStackTrace();

return chain.proceed(request);

}

Log.d("addHeader", "after");

return chain.proceed(newRequest);

}

}

Note that, i know i can add header when creating request like this:

Request request = new Request.Builder()

.url("https://api.github.com/repos/square/okhttp/issues")

.header("User-Agent", "OkHttp Headers.java")

.addHeader("Accept", "application/json; q=0.5")

.addHeader("Accept", "application/vnd.github.v3+json")

.build();

But it doesn't fit my needs. I need it in interceptor.

解决方案

Finally, I added the headers this way:

@Override

public Response intercept(Interceptor.Chain chain) throws IOException {

Request request = chain.request();

Request newRequest;

newRequest = request.newBuilder()

.addHeader(HeadersContract.HEADER_AUTHONRIZATION, O_AUTH_AUTHENTICATION)

.addHeader(HeadersContract.HEADER_X_CLIENT_ID, CLIENT_ID)

.build();

return chain.proceed(newRequest);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值