Java RESTAPI如何根据输入头返回Json和XML响应?
代码如下所示。当我检查从标题中提取的内容类型时,我想编写代码并从相同的方法返回响应Java RESTAPI如何根据输入头返回Json和XML响应?,java,rest,Java,Rest,代码如下所示。当我检查从标题中提取的内容类型时,我想编写代码并从相同的方法返回响应 @POST @Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_XML) public Response addMessage(Message message , @Context UriInfo uriInfo, @HeaderParam ("
@POST
@Produces(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_XML)
public Response addMessage(Message message , @Context UriInfo uriInfo,
@HeaderParam ("content-type") String contentType) throws
URISyntaxException
{
//Conditional check based on the content type.
if(contentType.equals("application/json")) {
return json;
}else {
return xml;
}
}
rest API如何根据输入头返回Json和XML响应?首先,在同一方法上使用多个
@products
是不正确的。可以为希望使用@products
生成的所有类型指定字符串[]
关于你的主要问题,我同意vlumi的评论
您应该只返回使用要返回的对象生成的响应, 并让JAX-RS根据需要将序列化处理为XML或JSON 客户期望/偏好的 i、 e.让框架根据客户指定的接受标题为您完成,正如Raj在评论中已经提到的那样
您必须传递请求头Accept:application/json或 应用程序/xml
格式化代码,并将问题从标题移到正文您必须传递请求标题Accept:application/json或application/XML您应该只返回使用要返回的对象生成的响应,并让JAX-RS将序列化处理为XML或json,根据客户的期望/偏好。我在方法级别用@products标记进行了注释,以支持返回这两种类型的数据。但是编译器对象。正确,谢谢你的帮助。我可以在类级和方法级的products注释中提到values标记中的类型。根据Accepts参数,将为客户端序列化结果。