在Restful上使用带@POST的JSON

时间:2016-01-10 17:00:52

标签: java json rest post

我试图在POST方法中使用JSON值,但我不知道如何执行此操作。

这是我的代码:

@POST
@Path("/contacts")
@Consumes({"application/json"})
public void addContact() {

    HttpSession session = request.getSession(true);

    UserPK user = new UserPK((String) session.getAttribute("username"));
    //dest = TAKE JSON VALUE

    dao.addContact(user, dest);
}

我用firefox RestClient发送JSON值,看看:

{"param1":"value"}

如何获取此值?

我们还有以下错误消息:415不支持的媒体类型

感谢。

3 个答案:

答案 0 :(得分:2)

确保您实际上是在发送帖子,而您的请求的内容类型是application / json。要使用spring MVC使用它,您可以使用@RequestBody注释:

@POST
@Path("/contacts")
@Consumes({"application/json"})
public void addContact(@RequestBody MyClass c) {

其中MyClass是一个表示请求对象的简单java类(即在这种情况下,您只需要一个名为param1的String类变量。

答案 1 :(得分:0)

如果您使用的是springmvc,它会附带json的消息转换器。 您可能必须将pojo声明为方法中的参数。

答案 2 :(得分:0)

问题是来自firefox的插件并不允许我修改标题,所以当我尝试使用带有邮差的chrome上的text / plain时它可以工作。

非常感谢。