我已经定义了一种将字符串值作为请求正文参数接受的方法,如下所示
@RequestMapping(value="/stringParam",method=RequestMethod.POST,consumes=MediaType.TEXT_PLAIN)
public String stringMethod(@RequestBody String stringParam){
return stringParam;
}
我尝试使用以下curl命令调用该端点
curl -X POST "http://localhost:7979/choudhury-rest/rest/book/stringParam" -d '\"ravi\"' -H "Content-Type: application/json"
这给了我这个错误
The request sent by the client was syntactically incorrect.
在那之后,我尝试了另一种方式
curl -X POST "http://localhost:7979/choudhury-rest/rest/book/stringParam" -d 'stringParam=\"ravi\"' -H "Content-Type: application/json"
这也给了我这个错误
The request sent by the client was syntactically incorrect.
谁能帮助我该如何调用该方法(我不知道我们是否可以定义一个接受原始值(int,long等)作为请求正文参数的rest方法)
答案 0 :(得分:0)
我看到了一些可以更改以完成这项工作的事情。
您必须在控制器中更改消耗参数,使用MediaType.TEXT_PLAIN_VALUE而不是MediaType.TEXT_PLAIN
@RequestMapping(value="/stringParam", method=RequestMethod.POST, consumes=MediaType.TEXT_PLAIN_VALUE)
public String stringMethod(@RequestBody String stringParam){
return stringParam;
}
使用curl时,通过包含标题Content-Type:text / plain来定义仅发送文本
$ curl -X POST "http://localhost:8080/choudhury-rest/rest/book/stringParam" -d "ravi" -H "Content-Type: text/plain"
结果
$ curl -X POST "http://localhost:8080/choudhury-rest/rest/book/stringParam" -d "ravi" -H "Content-Type: text/plain"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 8 100 4 100 4 4000 4000 --:--:-- --:--:-- --:--:-- 8000ravi
干杯!
注意:我在SpringBoot v2.0.5.RELEASE中测试了此控制器