我想知道你们是否知道Scala是否有可能调用一个需要@FormParam
参数的Java REST客户端函数。
如果Java客户端中的函数是这样的:
@Path("registerEmail")
@POST
public RegisterEmailResult doRegisterEmail(@FormParam("email") final String email, @FormParam("password") String password/* Some other params */) {
如何在Scala中传递一些@FormParam参数?我试过这个:
def registerEmail(registerEmail: RegisterEmail): Future[Boolean] =
post(
url("/theUrl/registerEmail"),
new Gson().toJson(registerEmail)
).map {
case data => true
}.recover {
case _ => false
}
RegisterEmail
模型具有Java函数参数的所有字段。
我错过了什么吗?否则我将不得不再次使用类似@QueryParams
的Java函数,这似乎是一种更好的方法。
答案 0 :(得分:0)
如果您也包含部分导入,那么理解您的代码会更简单。 url(我假设是Play的play.api.libs.ws.WS.url(...))可以像这样使用来传递表单数据:
WS.url("/theUrl/registerEmail")
.post(Map("email" -> Seq("someone@somewhere.com"),
"password" -> Seq("secretish")))
有关详细信息,请参阅https://www.playframework.com/documentation/2.3.x/ScalaWS(特别是搜索“提交表单数据”)