2012-03-17 2 views
5

나는 플레이 프레임 워크에서 webservice를 호출하려고하는데, 내가 잘못하고 있다고 생각한다.playframework 2.0에서 웹 서비스에 GET 요청을 내린다.

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 존재하지 않는"구성 : I는 다음과 내가이 playframework에서 노력하고있어에서 http://www.myweather2.com/developer/forecast.ashx?uac=eDKGlpcBQN&query=52.6%2C-4.4&output=xml

스 니펫에 예를 호출합니다. 방금 브라우저에이 URL을 넣으면 내가 찾고있는 응답을 얻습니다. 여기서 내가 뭘 잘못하고 있니?

+0

이상하게도, '컬'을 사용할 때 작동합니다. –

+0

여기서 '발'은 무엇을 의미합니까? 그것은 놀이 클래스입니까? – area5one

답변

9

\n 또는 \r를 삽입하지되어 있는지 확인합니다. 수입품을 import play.api.libs.ws.WS으로 고치면 효과가있었습니다. 나는 여전히 잘못된 수입으로 도중에 작동한다는 것에 놀랐다.

+0

올바른 수입은 어느 것입니까? 나는'import play.libs._'를 사용했다. –

+0

수정 된 답변, 추가하지 않기 바보 같음 – Martijn

+0

재생 프레임 워크 설명서에 다른 가져 오기가 언급되어 있지만 작동하지 않습니다. 이유를 모르겠다. 고맙게도 누군가 그 이유를 알아 냈습니다. 이걸 알아내는 데 힘든 시간을 보냈습니다. –

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 

편집 : 공간을 제거.

또한 내가 잘못 수입에서 WS를 얻고 있었다, 반드시 편집기가 어떤 이유로 ?

+0

'promise.value'이 나를 위해 작동하지 않습니다. 그게 플레이 2.0의 일부인가요? 또한 그 공간은 그 후에있을 예정입니까? – Martijn

+0

for promise.value, [여기] (http://www.playframework.org/documentation/api/2.0/scala/index.html#play.api.libs.concurrent.Promise) – Jamil

+0

감사합니다. 그것 – Martijn

2

나는 이것이 오래되었다는 것을 안다. 그러나 나는 똑같은 결과를 얻으려고하면서이 문제를 해결했다.

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

성가신하지만 비교적 간단한 고치다.

관련 문제