如何全局设置我的JEE REST客户端标头?

时间:2019-05-14 06:59:22

标签: java java-ee http-headers jax-rs

是否可以全局设置我的REST标头? 我试图结合一些JAX-RS技巧,但没有效果。

我所有的REST服务都具有这些注释:

@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")

@Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8")

最后我想要的是标题:

Accept:[application/json]
Content-Type:[application/json;charset=utf-8]

...仅通过配置,无需接触REST类。 有没有简单的方法可以实现这一目标?

2 个答案:

答案 0 :(得分:0)

是的,您可以轻松地做到这一点。创建一个BaseResource类,并将其扩展到为端点创建类的任何地方。

public abstract BaseResource {
    @HeaderParam("username")
    private String username;

    @HeaderParam("user-ip")
    private String userIp;
    public String getUserAccount () {
        return userAccount;
    }

    public final String getUserIP() {
        return userIp;
    }
}

使用这些方法,您可以轻松访问标头值。

答案 1 :(得分:0)

好吧,没有外界的帮助,所以我做到了:)

我使用了HttpServletResponseWrapper中的javax.servlet.http来设置标题。

我还使用了FilterChain中的javax.servlet,以确保不要让其他人敲门:)