我正在尝试从播放框架调用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不存在”组成。当我把这个网址放在浏览器中时,我得到了我正在寻找的响应。我在这里做错了什么?
答案 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()
烦人,但是相对简单的修复。