Как отправить сообщение http с пустым запросом тела с использованием WS API в Playframework 2/Scala?

Я пытаюсь отправить запрос HTTP POST в конечную точку службы с помощью API-интерфейса Play2/ Scala WS API. Поскольку в модуле HTTP POST нет параметров для отправки, как я могу отправить его с помощью

WS.url("http://service/endpoint).post()

Я пробовал post() без аргументов, но он дал мне ошибку.

Невозможно записать экземпляр ответа Unit-HTTP. Попробуйте определить Writeable [Unit]

Можете ли вы помочь в этом?

спасибо заранее...

Ответ 1

Так как post ожидает значение, реализующее классы типа Writeable и ContentTypeOf вы можете использовать Results.EmptyContent от play.api.mvc. (См. API)

Итак, я думаю,

WS.url("http://service/endpoint").post(Results.EmptyContent())

должен делать. (Не прошел тест)

Ответ 2

Для Play 2.6 и после этого вы должны использовать play.api.libs.ws.EmptyBody.

import play.api.libs.ws.{EmptyBody, WSClient}
WS.url("http://service/endpoint).post(EmptyBody)

Типичная ошибка:

Cannot find an instance of play.api.mvc.Results.EmptyContent to WSBody. Define a BodyWritable[play.api.mvc.Results.EmptyContent] or extend play.api.libs.ws.ahc.DefaultBodyWritables