Не могу поверить, что этого нет в документации http4s , а пример кода, который мне удалось выкопать в Интернете (после того, как я достаточно долго изучал класс UrlForm
), не соответствует работает для меня.
Соответствующий бит кода выглядит следующим образом:
case req @ POST -> Root / "compose" =>
req.decode[UrlForm] { ps =>
println("ps.values: " + ps.values)
val content = ps.getFirstOrElse("content",
throw new IllegalStateException("No content given!"))
// Do something with `content`...
}
При отправке связанной формы, IllegalStateException
выбрасывается. ps.values
- это пустая карта (Map()
).
Я вижу (используя println
), что Content-Type
равно application/x-www-form-urlencoded
, как и ожидалось, и я вижу на вкладке Сеть моего браузера этот запрос "paramaters" (значения закодированной формы) отправляется правильно.