我有一个恼人的错误,我找不到任何解释。 我在下面有这个代码:
Async{
WS.url(url).get().map{ response => //response here is giving me the error.
Ok("Response: " + (response.json \ "media_count").as[String])
}
}
这给了我一个错误说:
missing parameter type
关于回应。
我应该在哪里定义此参数类型?或者这个错误说的更具体?
答案 0 :(得分:1)
我认为您正在使用适用于Java API的play.libs.WS
。
此WS类的WS.url(...).get()
返回此类型的Promise
对象:Promise。此类的map
函数采用Function
实例,该实例与Scala中的Function1
不同。这导致编译器错误。
如果您在Scala中工作,则应使用play.api.libs.ws.WS
,这意味着可以使用Scala库。在程序中将import play.libs.WS
替换为import play.api.libs.ws.WS
,错误就会消失。
答案 1 :(得分:0)
这是我的代码,终于让它工作了。我想我想复杂而艰难。有时它会变得复杂。现在我可以面对一些新的障碍并找到新的有趣解决方案:)
Async{
try{
WS.url(requestUrl).get().map{ response =>
val param = (response.json.\("data").\("media_count"))
Ok(param.toString())
}
} catch {
case _:Throwable => {
Promise.pure(Ok("there was an error"))
}
}
}