从playframework 2.0向web服务发出GET请求

时间:2012-03-17 14:34:49

标签: scala playframework playframework-2.0 webrequest

我正在尝试从播放框架调用web服务,我认为我做错了。我有一个示例来电http://www.myweather2.com/developer/forecast.ashx?uac=eDKGlpcBQN&query=52.6%2C-4.4&output=xml

我从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不存在”组成。当我把这个网址放在浏览器中时,我得到了我正在寻找的响应。我在这里做错了什么?

3 个答案:

答案 0 :(得分:9)

出于某种原因,我从错误的导入中获取WS。当我将导入修复为import play.api.libs.ws.WS时,它有效。我仍然惊讶于它在导入错误的中途工作

答案 1 :(得分:2)

不知道“useraccount不存在”,但这似乎有效:

  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?

答案 2 :(得分:2)

我知道这已经过时了,但我在试图做同样的事情时解决了这个问题 - 获得相同的结果。

GET变量必须与WS.url一起传递(“http:// ...”)。setQueryParameter(key,value)

示例:

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()

烦人,但是相对简单的修复。