是否可以让 Jersey 采用一系列 HTTP 标头并将它们编组为 POJO,就像使用 POST 参数一样?
问问题
793 次
4 回答
4
如果您使用的是 jersey 1.x,那么您可以使用 @InjectParam,但我建议您升级到 2.x 并开始使用 @BeanParam
于 2015-05-01T13:32:51.863 回答
2
如果您想访问特定@HeaderParam
的 as a String
,请使用@Juned Ahsan 或@DJ Spiess 提供的答案。如果你想将它们注入 POJO,我建议@BeanParam
在 2.x 中使用 Jersey's。
例如:
@Path("/foo")
public class FooResource {
@GET
@Path("/bar")
public void bar(@BeanParam MyBean myBean) {
// Do something
}
}
public class MyBean {
private String uaCompatible;
public MyBean(@HeaderParam("X-UA-Compatible") String uaCompatible) {
this.uaCompatible = uaCompatible;
}
public String getUacompatible() {
return this.uaCompatible;
}
}
@BeanParam
可以替换@InjectParam
为 Jersey 1.x (>=1.4) 或@Inject
早于 1.4 的 1.x。@Inject
如果您使用的是 Spring 等依赖注入框架,也可以使用javax- 。
于 2013-07-17T17:33:40.413 回答
1
是的,你会这样做。(来自http://www.mkyong.com/webservices/jax-rs/get-http-header-in-jax-rs/)
@Path("/users")
public class UserService {
@GET
@Path("/get")
public Response addUser(@HeaderParam("user-agent") String userAgent) {
return Response.status(200)
.entity("addUser is called, userAgent : " + userAgent)
.build();
}
}
于 2013-07-17T15:05:28.390 回答
0
是的,您可以使用@HeaderParams
于 2013-07-17T14:19:34.947 回答