在Scala中使用play ws的POST请求

win*_*ram 7 post json scala playframework

我使用play-ws standalone来在scala中使用REST服务.

val data = Json.obj("message" -> "How are you?")
wsClient.url("http://localhost:5000/token").post(data).map { response =>
      val statusText: String = response.statusText
      println(response.body)
    }
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到以下错误,

Cannot find an instance of play.api.libs.json.JsObject to WSBody. Define a BodyWritable[play.api.libs.json.JsObject] or extend play.api.libs.ws.ahc.DefaultBodyWritables
    wsClient.url("http://localhost:5000/token").post(data).map { response =>
Run Code Online (Sandbox Code Playgroud)

它告诉定义一个bodywritable.我已阅读文档,但没有得到"BodyWritable".我是斯卡拉的新手.请有人帮帮我.提前致谢.

小智 10

您需要为json对象导入BodyWritables,将以下import语句添加到源文件中

import play.api.libs.ws.JsonBodyReadables._
import play.api.libs.ws.JsonBodyWritables._
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看官方文档