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