0

我有一个恼人的错误,我找不到任何解释。我在下面有这段代码:

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

关于回应。

我应该在哪里定义这个参数类型?或者这个错误说的更具体是什么?

4

2 回答 2

1

我认为您使用play.libs.WS的是用于 Java API 的。

这个WS.url(...).get()WS 类的返回Promise这个类型的对象:Promise。这个类的map函数接受一个Function实例,这与Function1Scala 中的不同。这会导致您的编译器错误。

如果你在 Scala 中工作,你应该使用play.api.libs.ws.WS与 Scala 库一起工作的那个。在您的程序中替换import play.libs.WSimport play.api.libs.ws.WS,错误应该消失。

于 2013-05-04T12:32:12.373 回答
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"))
     }
  }
}
于 2013-05-07T16:16:04.343 回答