我有一个Java WebService设置,它使用xml文件,并希望能够根据客户端请求生成xml或json。我知道这可以通过阅读Jersey REST方法来实现,但它没有显示如何提取这些信息。我也看了谷歌,但似乎无法找到任何这方面的例子。
http://wikis.sun.com/display/Jersey/Overview+of+JAX-RS+1.0+Features是我最初引用的网站,显示它是可能的,我只是想知道是否有人能够帮助我找出如何真正区分客户的请求。它在html标题中吗?身体?如果是这样,提取它的正确方法是什么?
这是我的方法目前的样子,我没有任何连接问题,只是找出客户端作为返回类型请求的内容。
@POST
@Path("getStatisticData")
@Produces ({"application/xml","application/json"})
@Consumes ("application/xml")
public String getStatisticData(@FormParam("xmlCoords") String xmlFile) throws Exception{
提前致谢。
答案 0 :(得分:2)
您可以使用@HeaderParam
注释提取它:
...
public String getStatisticData(@HeaderParam("Accept") String accept,
@FormParam("xmlCoords") String xmlFile) throws Exception {
...
}
答案 1 :(得分:1)
请求中的Accept标头用于客户端向服务器指示它支持的方法。
答案 2 :(得分:0)
如果客户端可以设置HTTP标头,那么正确的方法是使用Accept标头:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
如果无法做到这一点,请求的类型可以作为参数传递。
或者,公开两个不同的Web服务:一个返回XML,一个返回JSON。每个Web服务都会调用相同的代码,但使用参数指定要使用的格式。