Autore Topic: ottenere dati da un webservice come stringhe xml  (Letto 1526 volte)

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
ottenere dati da un webservice come stringhe xml
« il: 25 Gennaio 2011, 09:29:28 CET »
0
  Salve è possibile ottenere dei dati da un WebService semplicemente usando questa logica
 
  1) creazione stringa soap
  2) invio dei dati tramite post
  3) ricezione dei dati
  4) creare un xml con i dati inviati
 
 
  Premetto che con Actionscipt già lo faccio in questo modo, creo la richiesta
     
 
Codice (ActionScript 3): [Seleziona]
       
var data:String= "<soap....>
        request = new URLRequest(server);                      
        data_toSend = new XML(data);
        request.data = data_toSend;
     request.contentType = "
text/xml; charset=utf-8";
     request.method = URLRequestMethod.POST;   
    send_xml = new URLLoader();
     send_xml.load(request);   
     
    So che esiste una libreria ksoap2 ma preferirei fare io il parse cosi da avere maggiore controllo.
    Vorrei sapere solo se si può fare il resto poi provvedo io pian pianino.Certo se avete degli esempi...non sarebbe male
La domanda stupida è quella che non si fa

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:ottenere dati da un webservice come stringhe xml
« Risposta #1 il: 26 Gennaio 2011, 06:51:27 CET »
0
Ok ho continuato a tentare, studiare e prendere esempi e alla fine ho risolto al 70%.

Riesco ad inviare la stringa xml ed ottenere risposta cosi.

Codice (Java): [Seleziona]
String action = "getNumeroVerde";
String xmlContentToSend="<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"> <soap:Body><getNumeroVerde xmlns=\"http://www.mysite.it/\" /></soap:Body></soap:Envelope>";";
try {


                        HttpClient httpclient = new DefaultHttpClient();
                        HttpPost httpPost = new HttpPost(
                        URI.create("
http://www.mysite.it/service.asmx?op="+action));
                        httpPost.setHeader("Content-type", "text/xml; charset=ISO-8859-1");
                        StringEntity entity = new StringEntity(xmlContentToSend, "UTF-8");
                         entity.setContentType("application/xml");     
                         httpPost.setEntity(entity);
                        ResponseHandler<String> responseHandler = new BasicResponseHandler();
                        String responseBody = httpclient.execute(httpPost, responseHandler);
                       
                        debug.setText("resp: "+responseBody);
                }catch(Exception ex){
                        debug.setText("error https: "+ex.toString());
                       
                }

Ricevo la risposta. Ovviamente devo crearmi una classe più completa, che generi l' xml da inviare in maniera dinamica etc etc.

Ora non mi resta che creare l' xml dalla stringa, oppure è possibile ricevere direttamente in xml ?
La domanda stupida è quella che non si fa

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:ottenere dati da un webservice come stringhe xml
« Risposta #2 il: 26 Gennaio 2011, 09:13:31 CET »
0
xml è una stringa, quindi devi comunque prenderlo.

Ti sarà sicuramente utile, se già non l'hai guardato, questo tutorial di Qlimax.
Anziché prenderti l'xml di ritorno e poi parsarlo, prova a darlo in pasto al DocumentBuilder...
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:ottenere dati da un webservice come stringhe xml
« Risposta #3 il: 26 Gennaio 2011, 09:26:56 CET »
0
Si pensavo di fare cosi ma devo decidere se usare il Dom o il SAX
La domanda stupida è quella che non si fa

Offline elegos

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    Giacomo Furlan
  • Sistema operativo:
    Mac OS X
Re:ottenere dati da un webservice come stringhe xml
« Risposta #4 il: 30 Gennaio 2011, 11:52:20 CET »
0
Ho dato una rapida occhiata a google e mi pare di capire che tu soffra della Not Invented Here Syndrome, ossia che riscrivi tutto il codice da capo nonostante esistano già librerie solide per quel che vuoi fare.

Ecco un piccolo esempio di come utilizzare un WebService SOAP con una piccola libreria (ricordati in ogni caso che puoi sempre utilizzare le librerie per Java in Android!): Android Tales  &raquo; Blog Archive   &raquo; SOAP in Android

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:ottenere dati da un webservice come stringhe xml
« Risposta #5 il: 30 Gennaio 2011, 17:53:55 CET »
0
Android non ha classi per il soap, alla fine la libreria non serve, bastano 2-3 classi e 3-4 righe di codice, invio stringhe ricevo stringhe. La libreria koasp2 fa la stessa cosa che ho fatto io, certo ha tante classi che dopo il parse ti servono per ottenere i dati ma davvero basta poco per prendere dati via soap.
La domanda stupida è quella che non si fa