Как получить тело из запроса? - PullRequest
0 голосов
/ 14 апреля 2020

Я использую play 2.8.x framework в качестве бэкэнда, и мне нужно получить POST запросов от клиентов. Эти запросы имеют тело JSON, подобное следующему:

{
  "userId": "jjjjssss"
}

, и я хочу, чтобы Controller method на стороне сервера выглядел следующим образом:

public Result getUser(String userId) {
   ...
   return ok();
}

или как то так:

public Result getUser(String jsonBody) {
   ...
   return ok();
}

Как мне это сделать? Может ли play 2.8.x framework передать тело запроса методу контроллера?

1 Ответ

0 голосов
/ 14 апреля 2020

Ну, если я правильно понимаю, что вы спрашиваете правильно, вы должны проанализировать тело запроса в методе контроллера следующим образом:

YourJsonClass theBody = request.body().parseJson(YourJsonClass.class)

Таким образом, userId должен быть в YourJsonClass и пути URL будет избыточным.

Подробнее об этом здесь: https://www.playframework.com/documentation/2.8.x/JavaJsonActions#Handling -a- JSON -request

Просто убедитесь, что ваш запрос является запросом POST, который имеет заголовок Content-Type установлен в

application / json; charset = utf-8

...