如何在rest客户端中使用spring @RequestBody发送post请求

use*_*426 5 rest post spring firefox-addon

我有一个类 Person。

\n\n
class Person{\nInteger id;\nString firstName;\nString lastName;\n//other params, constructors, getters & setters\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

&我的方法是

\n\n
    @RequestMapping(value = "/test", method = RequestMethod.POST)\n    public void testPerson(\n            @RequestBody Person person){\n...\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我需要使用休息客户端来测试它。我尝试将 Firefox 插件的 \xe2\x80\x9crequest header\xe2\x80\x9d 部分设置为 \xe2\x80\x9cname\xe2\x80\x9d = \xe2\x80\x9cContent-Type\xe2\x80 \x9d 和 \xe2\x80\x9cvalue\xe2\x80\x9d = \xe2\x80\x9capplication/x-www-form-urlencoded\xe2\x80\x9d\n& 然后在 body 中添加参数,

\n\n
id=1&firstName=aaa&lastName=bbb\n
Run Code Online (Sandbox Code Playgroud)\n\n

但它给出了 404。

\n

Kar*_*gam 2

如果您收到404响应,则意味着您的请求 URL 错误,或者您使用了GET方法而不是方法POST,反之亦然。

然后,关于传入Person请求,如果@RequestBody使用,则必须在请求正文中传递 JSON 或 XML 作为播放负载。

JSON:

{
  "id":1,
  "firstName":"aaa",
  "lastName":bbb
}
Run Code Online (Sandbox Code Playgroud)

XML

<person>
  <id>1<id>
  <firstName>aaa</firstName>
  <lastName>bbb</lastName>  
</person>
Run Code Online (Sandbox Code Playgroud)