如何全局设置我的 JEE REST 客户端 headers?
How to set globally my JEE REST client headers?
有什么方法可以全局设置我的 REST headers?
我尝试结合一些 JAX-RS 技巧但没有效果。
我所有的 REST 服务都有这些注释:
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
和
@Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8")
最后我只想完成 headers:
Accept:[application/json]
Content-Type:[application/json;charset=utf-8]
...不接触 REST 类,仅通过配置。
有什么简单的方法可以做到这一点吗?
是的,您可以轻松做到这一点。创建一个 BaseResource class 并在您为端点创建 类 的任何地方扩展它。
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;
}
}
使用这些方法,您可以轻松访问 header 值。
好的,没有外界的帮助所以我做到了:)
我使用 javax.servlet.http
中的 HttpServletResponseWrapper
来设置 headers。
我还使用了 javax.servlet
中的 FilterChain
以确保不要让任何其他想法 knock-knock :)
有什么方法可以全局设置我的 REST headers? 我尝试结合一些 JAX-RS 技巧但没有效果。
我所有的 REST 服务都有这些注释:
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
和
@Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8")
最后我只想完成 headers:
Accept:[application/json]
Content-Type:[application/json;charset=utf-8]
...不接触 REST 类,仅通过配置。 有什么简单的方法可以做到这一点吗?
是的,您可以轻松做到这一点。创建一个 BaseResource class 并在您为端点创建 类 的任何地方扩展它。
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;
}
}
使用这些方法,您可以轻松访问 header 值。
好的,没有外界的帮助所以我做到了:)
我使用 javax.servlet.http
中的 HttpServletResponseWrapper
来设置 headers。
我还使用了 javax.servlet
中的 FilterChain
以确保不要让任何其他想法 knock-knock :)