2016-04-09 13 views

cevap

0

(Sadece bütünlüğü uğruna 2 ekledik)

  1. (sen denedi gibi) Çalma WS modülü kullanma Play ile SABUN web servislerini kullanmak için 2 yol vardır - senin kadar XML ile çalışma olacak, sadece çağırabilirsiniz: elbette

CompletionStage<Document> documentPromise = ws.url(url).get().thenApply(WSResponse::asXml); 

XML Belge sen mani olabilir aldıktan sonra İstediğiniz herhangi bir şekilde pulate - örneğin XPath veya başka XML ayrıştırma mekanizması ile:

String value = XPath.selectText("//value", yourXmlDocument); 
Node node = XPath.selectNode("//node", yourXmlDocument); 

  • (a/sahibi) SABUN kütüphanesini kullanma
      - Kütüphanenizi build.sbt dosyasında bir bağımlılık olarak sağlayabilir veya Play projesinin sınıf yoluna yerleştirebilir ve daha sonra kullanabilirsiniz. Ayrıca scalaxb ( http://scalaxb.org/sbt-scalaxb) yardım için
  • +0

    Merhaba, teşekkür bakmak, ama ben bir sorum daha var. 1 örnek değişkeninizde, URL, asmx dosyasına (ör. Http://www.webservicex.net/globalweather.asmx) veya belirli bir web metnine (ör. Http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry) işaret etmelidir. Aşağıdaki yazdım: ws.url ("http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry") .setRequestTimeout (5000) .setQueryParameter ("CountryName", "Ukrayna"). thenApply (WSResponse :: asXml) ve CompletionFuture tamamlandı, bu web servisine yapılan çağrılar var ve sonuç belgesi boş. –

    +0

    URL, mutlaka birlikte çalışacağınız kaynağa işaret etmelidir - bu durumda GetCitiesByCountry işleminde. Ama sonra bir "POST" isteğine ihtiyaç duyduklarını unutmayın - bu nedenle '.get()' – Anton

    +0

    Merhaba yerine '.post()' kullanmak zorundayım, kodumu "CompletionStage responseStage = ws.url (") olarak değiştirdim http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry").setQueryParameter("CountryName "," Ukrayna "). setRequestTimeout (5000) .post (" content "). thenApply (WSResponse :: asXml); veya ws.url ("http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry") .setRequestTimeout (5000) .post ("CountryName = Ukrayna") .thenApply (WSResponse :: asXml); ve şimdi Oyun 'org.xml.sax.SAXParseException; satırSayı: 1; columnNumber: 1; Prolog.' içeriğine izin verilmiyor. –