#scala #http #playframework
#scala #http #playframework
Вопрос:
Я пытаюсь выполнить POST-вызов в Play, который отправляет данные формы с текстом электронной почты и пароля.
Это то, что я пробовал до сих пор, но это не компилируется:
def ws: WSClient
ws.url(railsLoginApi).withHeaders("Content-type" -> "application/json").post(Form("email" -> "xxx", "pass" -> "xxx"))
Но я получаю сообщение об ошибке, Form("email" -> "xxx", "pass" -> "xxx")
говоря:
неуказанные параметры значения. ошибка: seq[FormError] значение: Опция [NotInferedT]
Кто-нибудь знает, как выполнить это в игре, используя Scala?
Комментарии:
1. Смотрите это: playframework.com/documentation/2.5.x /…
Ответ №1:
Поскольку URL принимает данные формы. Тип содержимого должен быть application/x-www-form-urlencoded
, а формат тела будет выглядеть MyVariableOne=ValueOneamp;MyVariableTwo=ValueTwo
ws.url(railsLoginApi)
.withHeaders("Content-type" -> "application/x-www-form-urlencoded")
.post[String](Map("email" -> "xxx", "pass" -> "xxx").map { case (k, v) => s"$k=$v"}.mkString("amp;"))