我有以下代码
TOP
我需要检索REQUEST标头。 如果我有一个HttpServletRequest对象,我知道如何获取它们。
ADD:除了明确提供的Authorization标头之外,请求是否还包含其他标头?
但在这种情况下,我发现没有方法(在WebTarget或Invocation.Builder接口中)来实现我的目标。
任何提示?
谢谢!
答案 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);