Есть ли способ получить доступ ко всем параметрам запроса, независимо от метода HTTP? Я вылил документацию и API, не находя пути в Play Framework 2.0.
У меня есть поиск на сайте, который принимает POST и GET. Пользовательское отслеживание на сайте проверяет все переданные параметры, чтобы определить правильный способ хранения данных отслеживания.
В Play Framework 1.2.x мне удалось получить доступ к параметрам из запроса в контроллере с помощью
request.params.get("keywords")
request.params.get("location")
request.params.all()
С Play Framework 2.0 это уже не так. Запрос больше не имеет метода params
, только queryString
, а queryString работает только с GET, а не с POST.
Невозможно определить каждый возможный параметр отслеживания в действии контроллера, они являются динамическими.
ОБНОВЛЕНИЕ : Возможный обходной путь - использование Анализаторы тела .
В зависимости от типа содержимого запроса используется соответствующий анализатор, например, application / form-url-кодированный против application / json
Это грубая карта, которая объединяет параметры POST и параметры GET, причем параметры GET имеют приоритет.
val params: collection.mutable.Map[String, Seq[String]] = collection.mutable.Map()
params ++= request.body.asFormUrlEncoded.getOrElse[Map[String, Seq[String]]] { Map.empty }
params ++= request.queryString