我已经创建了一个REST Web服务。现在,调用我的Web服务的应用程序表示将以RESPONSETYPE的形式发送Header,其值为JSON或XML。基于此,我需要在json/xml中生成响应。我知道Accept标头可以通过发送值application/xml或application/json来使用。但是,我怎样才能实现基于自定义标题RESPONSETYPE的动态响应?动态地将JSON/XML传递给REST Web服务
在此先感谢。
我已经创建了一个REST Web服务。现在,调用我的Web服务的应用程序表示将以RESPONSETYPE的形式发送Header,其值为JSON或XML。基于此,我需要在json/xml中生成响应。我知道Accept标头可以通过发送值application/xml或application/json来使用。但是,我怎样才能实现基于自定义标题RESPONSETYPE的动态响应?动态地将JSON/XML传递给REST Web服务
在此先感谢。
你应该能够在您的Response
对象明确设置MediaType
做到这一点。
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response getSomething(@HeaderParam("your-customer-header") String customHeaderType) {
return Response.ok(thingYouWantToReturn, mediaTypeFrom(customHeaderType)).build();
}
mediaTypeFrom
是你需要确定哪些实际MediaType
返回被
非常感谢。它的工作。 :) – Kaushi
如何建立你的REST服务的方法?如果你使用的是泽西岛这样的东西,可以由框架自动完成 – tddmonkey
是的,我正在使用泽西岛 – Kaushi
听起来很糟糕。当存在提供相同功能的现有和已记录的标头时,您不应创建自定义HTTP标头。 'Accept'请求头描述了**“响应可接受的内容类型”。**此外,大多数框架可以根据**'Content-Type' **和**'Accept'自动选择响应格式。 **标题。 –