Jak volání SOAP webové služby na Androidu

hlasů
507

Mám hodně problémů najít dobré informace o tom, jak volat standardní SOAP / WSDL webové služby s operačním systémem Android. Všechno, co jsem byl schopen najít, jsou buď velmi spletité dokumenty a odkazy na „kSoap2“ a ještě něco navíc něco o analýze to všechno ručně SAX . OK, to je v pořádku, ale je to 2008, takže mě napadlo, že by měl být nějaký dobrý knihovnu pro volání standardní webové služby.

Webová služba je v podstatě jen jedno vytvořené v NetBeans . Chtěl bych mít podporu IDE pro generování instalatérské tříd. Potřebuju jen nejjednodušší / nejvíce elegantní způsob, jak se spojit s WSDL na bázi webové služby z telefonu Android založeného.

Položena 18/11/2008 v 02:32
zdroj uživatelem
V jiných jazycích...                            


26 odpovědí

hlasů
8

Jsem si jist, že byste mohli udělat trochu SOAP klientovi Axis . Pokyny k instalaci osa .

Odpovězeno 18/11/2008 v 18:49
zdroj uživatelem

hlasů
232

Android neposkytuje žádný druh SOAP knihovny. Buď můžete napsat svůj vlastní, nebo použít něco jako kSOAP 2 . Jak jste na vědomí, že jiní byli schopni sestavit a používat kSOAP2 ve svých vlastních projektech, ale já jsem musel.

Google ukázala, k dnešnímu dni, nemají velký zájem o přidání knihovnu SOAP Android. Mám podezření, je to, že by raději podporovat současné trendy v Web Services vůči služeb REST bázi a za použití JSON jako formát dat zapouzdření. Nebo s použitím XMPP pro zasílání zpráv. Ale to je jen dohad.

Založené na XML webové služby jsou poněkud non-triviální úkol na Android v tomto okamžiku. Nevěda, NetBeans, nemohu mluvit dostupných nástrojů tam, ale souhlasím s tím, že lepší knihovna by měla být k dispozici. Je možné, že XmlPullParser vám ušetří od pomocí SAX, ale já moc nevím o tom.

Odpovězeno 19/11/2008 v 22:50
zdroj uživatelem

hlasů
94

org.apache.http.impl.client.DefaultHttpClientDodává se v Android SDK ve výchozím nastavení. To bude mít jste připojeni k WSDL.

HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("http://www.example.com/" + URL);
HttpResponse response = httpClient.execute(httpGet, localContext);
Odpovězeno 08/01/2009 v 23:17
zdroj uživatelem

hlasů
27

SOAP je nevhodné technologie pro použití na Android (nebo mobilních zařízení obecně) kvůli zpracování / parsování režii, která je povinná. A služby REST je lehčí řešení, hmotnost a to je to, co bych navrhoval. Android přichází s SAX parser, a to je docela triviální použít. Pokud jste nezbytně nutné pro zpracování / analyzovat SOAP na mobilním zařízení, pak jsem tě líto, nejlepší rada, kterou mohu nabídnout, je prostě nepoužívat mýdlo.

Odpovězeno 12/01/2009 v 18:04
zdroj uživatelem

hlasů
56

Je pravda, že z důvodu, že je to nad hlavou SOAP není tou nejlepší volbou pro výměnu dat s mobilními zařízeními. Nicméně, můžete ocitnout v situaci, kdy nemáte přístup k formátu výstupu serveru.

Takže, pokud máte držet se SOAP, tam je knihovna kSOAP2 oprava pro Android zde:
http://code.google.com/p/ksoap2-android/

Odpovězeno 10/10/2009 v 11:57
zdroj uživatelem

hlasů
20

Měl jsem schůzku s KSOAP; Zvolila jsem poněkud jednodušší přístup.

Vzhledem k tomu, soubor WSDL vytvořit SOAP Žádost šablony pro každý požadavek (pro např: pomocí rozhraní SOAP) a potom nahradit hodnoty, které mají být předány v kódu. POST tato data ke koncovému bodu služby s využitím DefaultHttpClient instanci a získat datový proud odpovědí. Analyzovat Response Stream pomocí XML parser Pull.

Odpovězeno 21/12/2009 v 17:10
zdroj uživatelem

hlasů
14

Pokud je to možné, jít na JSON. Android přichází s kompletní balení org.json

Odpovězeno 23/12/2009 v 16:14
zdroj uživatelem

hlasů
30

Chcete-li volat webovou službu z mobilního zařízení (zejména na telefonu Android), jsem použil velmi jednoduchý způsob, jak to udělat. Já jsem nepoužil žádné webové služby klienta API pokus o volání webové služby. Můj přístup je takto k uskutečnění hovoru.

  1. Vytvoření jednoduchého připojení prostřednictvím HTTP pomocí standardního API Javy HttpURLConnection.
  2. Vytvoří požadavek SOAP. (Můžete provést pomoc SOAPUI provést požadavek SOAP).
  3. Nastaven příznak doOutPut jako pravdivé.
  4. Nastavené hodnoty záhlaví HTTP jako content-length, typu obsahu, a uživatel-agent. Nezapomeňte nastavit Content-Length hodnotu, je to povinné.
  5. Napsat celý požadavek SOAP na výstupní proud.
  6. Volání metody, aby připojení a přijímat odezvu (V mém případě jsem použil getResonseCode).
  7. Pokud váš obdržel kód odpovědi as
    1. To znamená, že se podařilo zavolat webovou službu.
  8. Nyní se vstupní proud na stejné připojení HTTP a získat objekt řetězec. Tento objekt řetězec je odpověď SOAP.
  9. Je-li kód odezvy jiný než 200 pak se ErrorInputproud na stejné HTTPobject a dojde k chybě, pokud existuje.
  10. Analyzovat obdržené odpovědi pomocí SAXParser (v mém případě), nebo DOMParaser nebo jakýkoli jiný rozebrat mechanismus.

Jsem implementoval tento postup pro Android telefon, a to je úspěšně spuštěna. Jsem schopen analyzovat odpověď, i když je více než 700 KB.

Odpovězeno 04/02/2010 v 11:55
zdroj uživatelem

hlasů
12

Doufám Volání webové služby z Android pomáhá.

Odpovězeno 25/04/2010 v 02:06
zdroj uživatelem

hlasů
16

Můžete se podívat na WSClient ++

Odpovězeno 15/07/2010 v 09:52
zdroj uživatelem

hlasů
15

Vytvořil jsem novou SOAP klient pro platformu Android. To je pomocí vygenerovaného rozhraní JAX-WS, ale jedná se pouze o proof-of-concept doposud.

Máte-li zájem, zkuste si příklad a / nebo sledovat zdroj na AndroidSOAP .

Odpovězeno 19/10/2010 v 16:42
zdroj uživatelem

hlasů
8

Myslím, že Call SOAP webové služby z aplikace pro Android vám pomůže hodně.

Odpovězeno 28/01/2011 v 11:35
zdroj uživatelem

hlasů
6

Pokud můžete použít JSON, tam je whitepaper, video a sample.code na vývoj aplikací služby s PHP servery a Android telefony klienty .

Odpovězeno 24/04/2011 v 11:07
zdroj uživatelem