Получение параметров формы из post-запроса с помощью spray / scala

#scala #post #akka #spray

#scala #Публикация #akka #спрей

Вопрос:

Я действительно новичок во всем этом Scala / Spray. После некоторого тестирования я смог получить параметры из запроса Get с помощью функции parameters . Однако я пытаюсь извлечь некоторые параметры, отправленные из POST-запроса в теле запроса. Похоже, что функция parameters не может получить эти значения.

В качестве примера я пытаюсь получить эти значения «name = john amp; lastname = smith» из тела post-запроса. Каков наилучший вариант для получения этих значений?

Спасибо

Комментарии:

1. сможете ли вы использовать Request. Строка запроса («имя»)?

2. Это не сработает, если параметра нет в строке запроса.

Ответ №1:

Вы можете использовать [Form-Field-Filters] для извлечения параметров из сообщений

[Form-Field-Filters] https://github.com/spray/spray/wiki/Form-Field-Filters

Ответ №2:

Действительно, parameters директива обрабатывает только фактические данные в строке запроса, а не параметры в теле запроса. Чтобы извлечь что-то из тела, вам нужно будет использовать content директиву, а затем удалить содержимое.

Этот поток spray-user может быть полезен, поскольку он включает в себя некоторый код, не требующий сопоставления, выполняющий именно то, что вы ищете.

Комментарии:

1. К вашему сведению, content директива была недавно переименована в entity . Кроме того, как говорится в другом ответе, существует formFields директива, которая позволяет извлекать данные из POST-данных.

Ответ №3:

Начиная с последних версий Spray, вам необходимо использовать Unmarshaller for FormData .