сделать запрос GET к веб-сервису из playframework 2.0 - PullRequest
5 голосов
/ 17 марта 2012

Я пытаюсь вызвать веб-сервис из игровой среды и думаю, что делаю это неправильно.У меня есть пример вызова 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не существует".Когда я просто помещаю этот URL в браузер, я получаю ответ, который ищу.Что я тут не так делаю?

Ответы [ 3 ]

9 голосов
/ 18 марта 2012

По какой-то причине я получаю WS из-за неправильного импорта. Когда я установил импорт на import play.api.libs.ws.WS, это сработало. Я до сих пор поражаюсь, что он работал на полпути с неправильным импортом

2 голосов
/ 17 июня 2012

Я знаю, что это старо, но я просто решил эту проблему, пытаясь сделать то же самое - получить те же результаты.

Переменные 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()

Раздражает, но исправление относительно простое.

2 голосов
/ 17 марта 2012

Не знаю, как "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 после ?

...