是否有可能让Jersey采用一系列HTTP标头并将它们编组为POJO,就像使用POST参数所做的一样?

最佳答案

如果要以@HeaderParam的身份访问特定的String,请使用@Juned Ahsan或@DJ Spiess提供的答案。如果要将它们注入POJO,建议在2.x中使用Jersey的@BeanParam

例如:

@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替换为Jersey 1.x(> = 1.4)的@InjectParam或1.x之前的1.4中的@Inject。如果您正在使用依赖注入框架(例如Spring),也可以使用javax- @Inject

08-24 13:21