2012-03-17 22 views
5

से एक webservice को एक GET अनुरोध करने के लिए मैं प्ले फ्रेमवर्क से एक webservice कॉल करने का प्रयास कर रहा हूं, और मुझे लगता है कि मैं इसे गलत कर रहा हूं।playframework 2.0

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 

जब मैं इस फोन, शरीर के "उपयोगकर्ता खाता मौजूद नहीं है" होते हैं: मैं क्या मैं playframework से कोशिश कर रहा हूँ निम्नलिखित है से http://www.myweather2.com/developer/forecast.ashx?uac=eDKGlpcBQN&query=52.6%2C-4.4&output=xml

एक टुकड़ा करने के लिए एक उदाहरण के फोन है। जब मैं ब्राउज़र में यह यूआरएल डालता हूं, तो मुझे वह प्रतिक्रिया मिलती है जिसे मैं ढूंढ रहा हूं। मुझसे यहां क्या गलत हो रहा है?

+0

हाँ अजीब, यह 'curl' का उपयोग करते समय भी काम करता है। –

+0

'वैल' का अर्थ यहां क्या है, क्या एक नाटक वर्ग है? – area5one

उत्तर

9

एक \n या \r डालने नहीं है किसी कारण से करते हैं। जब मैंने आयात को import play.api.libs.ws.WS पर तय किया, तो यह काम किया। मैं अभी भी आश्चर्यचकित हूं कि यह गलत आयात

+0

कौन सा आयात सही था? मैंने 'play play.libs._' आयात किया। –

+0

संपादित उत्तर, वह बेवकूफ था – Martijn

+0

जोड़ने के लिए प्ले फ्रेमवर्क दस्तावेज अन्य आयात का उल्लेख करता है और यह काम नहीं करता है। यकीन नहीं है कि क्यों। शुक्र है कि किसी को कारण पता चला। एक मुश्किल समय यह पता लगाना था। –

2

पता नहीं है के बारे में "उपयोगकर्ता खाता मौजूद नहीं है" लेकिन यह काम करने के लिए लगता है:

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

'वादा .value' मेरे लिए काम नहीं कर रहा है। क्या play2.0 का वह हिस्सा है? साथ ही, क्या वह जगह वहां होने वाली जगह है? वचन के लिए – Martijn

+0

, देखें [यहां] (http://www.playframework.org/documentation/api/2.0/scala/index.html#play.api.libs.concurrent.Promise) – Jamil

+0

धन्यवाद, मुझे मिल गया है यह – Martijn

2

मुझे पता है कि यह पुराना है, लेकिन मैंने एक ही चीज़ करने की कोशिश करते समय इस समस्या को हल किया - एक ही परिणाम प्राप्त करना।

प्राप्त चर 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() 

कष्टप्रद है, लेकिन एक अपेक्षाकृत सरल ठीक कर।