как вызвать конечную точку, которая принимает только строковое значение в качестве параметра тела запроса - PullRequest
0 голосов
/ 22 февраля 2019

Я определил метод, который принимает строковое значение в качестве параметра тела запроса, как показано ниже

@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.

может кто-нибудь мне помочьчто, как я могу вызвать этот метод (я не знаю, можем ли мы определить метод rest, который принимает примитивное значение (int, long и т. д.) в качестве параметра тела запроса)

1 Ответ

0 голосов
/ 22 февраля 2019

Я вижу несколько вещей, которые вы можете изменить, чтобы сделать эту работу.

Вы должны изменить аргумент потребителя в вашем контроллере, используйте 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"

Results

$ 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

Cheers!

ПРИМЕЧАНИЕ.Я тестировал этот контроллер в SpringBoot v2.0.5. RELEASE

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...