我希望有不同的函数根据Accept标头处理对特定资源的请求。具体来说,如果存在Accept标头,则应调用返回application-json的content-type的函数,否则如果不存在Accept标头,则应调用返回text / plain内容的不同函数。有没有办法用Jersey注释做到这一点?
顺便说一句,这是在dropwizard json Web服务的上下文中。
答案 0 :(得分:0)
我有同样的问题(这就是我来这里的原因)。关于@Produces
的提示解决了这个问题:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/Test")
@Produces(MediaType.TEXT_HTML)
public class TestResource {
@GET
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public String json() {
return "{\"hello\": \"world\"}";
}
@GET
@Path("/test")
@Produces(MediaType.APPLICATION_XML)
public String xml() {
return "<hello>World</hello>";
}
@GET
@Path("/test")
public String html() {
return "<html>Hello world</html>";
}
}
现在调用“/ Test / test”服务会产生不同的结果,具体取决于“Accept”标题。