我正在开发基于Jersey REST API的Web应用程序.我正在根据客户端要求(JSON格式的输入参数)开发POST服务,并且工作正常.现在他们想要改变输入格式,如下所示.现在我得到415错误(不支持的媒体类型).
这是旧的JSON格式,它的效果很好:
{
"weight": 5.0,
"length": 1.5,
"width": 2.7,
"height": 0.7
}
这个格式客户端需要发送.
{
weight = 12;
with = 78;
height = 78;
length = 5;
}
这是我的POST服务:
@POST
@Path("/insert")
@Consumes({MediaType.TEXT_PLAIN})
@Produces({MediaType.APPLICATION_JSON})
以前我用过
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
解决方法:
它不再是JSON了.看看http://www.json.org/,您将看到参数名称字符串必须用双引号括起来.所以你必须决定听取客户端并创建自己的MessageBodyReader
来处理这种自定义格式,或者告诉客户端他们需要发送有效的JSON.