JAVA - 获取HTTP请求标头

时间:2017-11-08 15:17:11

标签: java http httprequest

我有以下代码

TOP

我需要检索REQUEST标头。 如果我有一个HttpServletRequest对象,我知道如何获取它们。

ADD:除了明确提供的Authorization标头之外,请求是否还包含其他标头?

但在这种情况下,我发现没有方法(在WebTarget或Invocation.Builder接口中)来实现我的目标。

任何提示?

谢谢!

1 个答案:

答案 0 :(得分:0)

  

除了明确提供的Authorization标头之外,请求是否还包含其他标头?

是。对于您问题中发布的代码,至少会在您的请求中添加以下标题:

  • Host: <host>:<port>
  • Accepts: application/json
  • Content-Type: application/json

您可以使用ClientRequestFilter从请求中获取标头:

public class MyClientRequestFilter implements ClientRequestFilter {

    @Override
    public void filter(ClientRequestContext requestContext) throws IOException {

        MultivaluedMap<String, Object> headers = requestContext.getHeaders();
        ...

    }
}

然后在客户端实例中注册过滤器:

Client client = ClientBuilder.newClient().register(MyClientRequestFilter.class);