每个请求的 Apache HttpClient 自定义动态 header

Apache HttpClient custom dynamic header on every request

我正在使用 Apache 的 HttpClient 为受保护的 api 服务编写 java 客户端。我想知道是否可以自动向每个请求添加动态 header 而不是必须在每个 HttpGet 或 HttpPost 实例上添加 header 。 header 需要接受请求 URL 和请求方法(GET 或 POST),因为这个要求我不能简单地将它添加到默认请求 headers在构建 HttpClient 时。谢谢

使用自定义请求拦截器

    CloseableHttpClient client = CachingHttpClients.custom()
            .addInterceptorLast((HttpRequestInterceptor) (request, context) -> {
                String method = request.getRequestLine().getMethod();
                String requestUri = request.getRequestLine().getUri();
                request.addHeader("x-my-header", doSomethingClever(method, requestUri));

            })
            .build();