Scala 从playframework 2.0向Web服务发出GET请求

Scala 从playframework 2.0向Web服务发出GET请求,scala,playframework,playframework-2.0,webrequest,Scala,Playframework,Playframework 2.0,Webrequest,我试图从play框架调用Web服务,我认为我做得不对。我有一个打电话给你的例子 下面是我在playframework中尝试的内容的一个片段: val response = WS.url("http://www.myweather2.com/developer/forecast.ashx?uac=eDKGlpcBQN&query=52.6%2C-4.4&output=xml").get.get() val body = response.getBody 当我调用它时,主体由“us

我试图从play框架调用Web服务,我认为我做得不对。我有一个打电话给你的例子

下面是我在playframework中尝试的内容的一个片段:

val response = WS.url("http://www.myweather2.com/developer/forecast.ashx?uac=eDKGlpcBQN&query=52.6%2C-4.4&output=xml").get.get()
val body = response.getBody
当我调用它时,主体由“useraccount不存在”组成。当我把这个url放到浏览器中时,我得到了我想要的响应。我做错了什么?

不知道“用户帐户不存在”,但这似乎有效:

  val promise = WS.url("http://www.myweather2.com/developer/forecast.ashx?uac=eDKGlpcBQN&query=52.6%2C-4.4&output=xml").get()
  val body = promise.value.get.body
编辑:删除空间


还要确保编辑器没有在
之后插入
\n
\r

由于某种原因,我从错误的导入中获取WS。当我将导入修复为
import play.api.libs.ws.ws
时,它成功了。我仍然惊讶于它在错误导入的情况下半途而废

我知道这很旧,但我只是在尝试做同样的事情时解决了这个问题-得到同样的结果

GET变量必须与WS.url一起传递(“http://...)。setQueryParameter(键、值)

例如:

val promise = WS.url("http://www.myweather2.com/developer/forecast.ashx").setQueryParameter("uac", "eDKGlpcBQN").setQueryParameter("query", "52.6%2C-4.4").setQueryParameter("output", "xml").get()

恼人,但相对简单。

是的,很奇怪,它甚至可以在使用
curl
时使用。这里的“val”是什么意思,这是一个游戏类?
promise.value
对我不起作用。这是play2.0的一部分吗?另外,这个空间应该在promise.value之后吗?对于promise.value,请参阅play framework文档中提到的另一个导入,但它不起作用。不知道为什么。谢天谢地,有人找到了原因。很难弄清楚这一点。