В настоящее время я посылающие запросы GET через Play WS API следующим образом:Отправить запрос POST с параметрами в теле через Play WS API
wsClient
.url(myUrl)
.withQueryString(getParams(): _*)
.get()
Теперь я хочу, чтобы изменить этот вызов, чтобы использовать HTTP Post. При звонке в следующем:
wsClient
.url(myUrl)
.withMethod("POST")
.withBody(getParams(): _*)
.get()
Я получаю следующее сообщение об ошибке:
Cannot write an instance of Seq[(String, String)] to HTTP response. Try to define a Writeable[Seq[(String, String)]]
Я думаю, это потому, что метод возвращает getParams
Seq[(String, String)]
.
Как это исправить?
Вы должны закончить вызов с '.post()' ... Смотрите [документы] (https://www.playframework.com/documentation/2.5.x/ScalaWS#Request-with-additional-headers). –
Благодарим за отзыв. Я заменил 'get()' на 'post (getParams(): _ *)' и удалил '.withBody (getParams(): _ *)', но я все равно получаю ту же ошибку. –
Также '.withBody (getParams(): _ *)' неправильно. Что вы отправляете как ** body **, некоторые JSON, XML? Строка запроса - это только параметры URL, такие как '? Id = 5 & name = whatever'. –