[英]Scala compile time error: No implicits found for parameter evidence$2: BodyWritable[Map[String, Object]]
I am working on scala play framework application.我正在开发 Scala Play 框架应用程序。 I am trying to call a web service API which takes request payload data as follows
我正在尝试调用一个 Web 服务 API,它接受请求有效负载数据,如下所示
{
"toID": [
"email1@email.com",
"email2@email.com"
],
"fromID": "info@test.com",
"userID": "ervd12fdsfksdjnfn9832rbjfdsnf",
"mailContent": "Dear Sir, ..."
}
And for this I am using following code为此,我使用以下代码
ws.url(Utils.messengerServiceUrl + "service/email")
.post(
Map("userID" -> userID, "mailContent" -> userData.message, "fromID" -> "info@test.com", "toID" -> userData.emails)).map { response =>
println(response.body, response.status)
}
So for this code, compiler is complaining about "toID" -> userData.emails saying No implicits found for parameter evidence$2: BodyWritable[Map[String, Object]]所以对于这段代码,编译器抱怨“toID”-> userData.emails说没有找到参数证据 $2 的隐式:BodyWritable[Map[String, Object]]
So my question is how to send such data using WSClient?所以我的问题是如何使用 WSClient 发送此类数据?
You can do it with case class like that你可以用这样的案例类来做到这一点
import play.api.libs.json._
case class Message(toID: Seq[String], fromID: String, userID: String, mailContent: String)
object Message {
implicit val writes: Writes[Message] = Json.writes[Message]
}
Pay attention to the definition of the object Message
with implicit writes
注意
implicit writes
的object Message
的定义
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.