如何将标头添加到已构建的OkHttp请求对象?

7 java android okhttp

我想为已经构建的OkHttp请求对象添加标头.我可以newBuilder()应要求吗?怎么newBuilder()办?

Eri*_*ran 10

如果这只是a上的一次性标头插入Request,那么请确保: request.newBuilder().addHeader("header-name", "value").build();

如果你想为你的所有人做这个Request,请OkHttpClient使用拦截器:

private static final class AddHeaderInterceptor implements Interceptor {

  @Override public Response intercept(Chain chain) throws IOException {
    Request request = chain.request();
    request = request.newBuilder().addHeader("header-name", "value").build();
    return chain.proceed(request);
  }
}
Run Code Online (Sandbox Code Playgroud)

至于newBuilder()的作用,请阅读源代码.:) https://github.com/square/okhttp/blob/0ac2471d0678dfa9d535fbb13a546134dc2b3089/okhttp/src/main/java/com/squareup/okhttp/Request.java#L93