我想在我正在编写的程序中使用@Produces({Mediatype.Application_XML,Mediatype.Application_JSON})。我只想用这个方法,但我很困惑,它何时会返回一个JSON对象,以及它何时会返回一个XML页面。以下是我正在编写的代码,在这两种情况下,它都会返回一个XML Feed。如果它不符合if-else标准,我希望它返回一个JSON对象。如何使用@produces注释?
@Path("/{search}")
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public String getCountryData(@PathParam("search") String search, @QueryParam("ccode") String ccode , @QueryParam("scode") String scode) {
if(ccode.equals("XML")){
return "<note> <to>Tove</to> <from>Jani</from><heading>Reminder</heading> <body>Don't forget me this weekend!</body></note>";
}
return EndecaConn.ConnectDB("Search", search,"mode matchallpartial");
}
当一个客户HTTP'Accept'头是XML('text/xml')时,它将返回XML。如果它是'application/json',它将返回json。 –
我不知道客户端将使用什么..我不能改变客户端的接受头...因为我不是客户端..没有其他方式来做它..除了创建两个新的方法 –
这取决于你的客户。 –