我正在尝试在Resteasy中实现GET方法。我无法使用QueryParam,因为有许多搜索参数,包括复杂类型。所以我想到了使用XML。在下面的代码中,请求和响应都是从schema生成的JAXB类。我的问题是客户端如何传递请求xml?
@GET
@Path("search")
@Produces(MediaType.APPLICATION_XML)
@Consumes(MediaType.APPLICATION_XML)
public SearchResponse searchTasks(SearchRequest searchReq)
{
这是我用Jersey创建的示例客户端。当我打电话时,我得到“415不支持的媒体类型”。我是否正确传递XML?是否可以将XML参数发送到GET方法?
webResource.accept(MediaType.APPLICATION_XML);
webResource.type(MediaType.APPLICATION_XML);
webResource.entity(req,MediaType.APPLICATION_XML);
SearchResponse return1 = webResource.get(SearchResponse.class);
我正在Tomcat中部署它。
感谢您对此进行调查。
答案 0 :(得分:1)
导致错误的原因是您在发出请求时没有设置Content-Type
标头。确保将其设置为Content-Type: application/xml
。
另外,GET请求通常没有请求正文,尽管有可能。我suggest against including one,而是使用POST方法。