Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Soap output

  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Soap output

    Ciao, mi rivolgo al forum perchè ho uno strano problema nell'output soap di una chiamata ad un webservice creato con Visual Studio 2010.

    L'applicazione Android chiama correttamente il webservice, ma l'output (previsto come DataSet in VS 2010) restituisce:
    codice:
    anyType{schema=anyType{element=anyType{complexType= ...
    Cercando su Google sembra che si risolva aggiungendo questa stringa alla classe, ma non ha funzionato.
    Qualcuno sa aiutarmi? Grazie e buona domenica.
    codice:
            
      try {            
                httpTransport.call(SOAP_ACTION, envelope);
    
                SoapObject result = (SoapObject) envelope.bodyIn;
                String Result = result.getProperty(0).toString();
                
                textView.setText(Result.toString());
    
    
            } catch (Exception exception) {
                textView.setText(exception.toString());
            }

  2. #2
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    up

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sinceramente non si è capito quale sia il problema...

    In secondo luogo, affinchè due applicazioni distinte possano scambiarsi messaggi interpretabili l'un l'altra è necessario che entrambe adottino un "protocollo comune". Non so cosa voglia dire che l'output è previsto come dataset, ma SOAP altro non è che un insieme di messaggi XML e XML è un protocollo comune a tanti (e supportato anche da Android, per quel che ne so).

    Però, ripeto, non si sa cosa tu voglia ottenere e cosa ci sia che non va in quello che ottieni...



    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Innanzitutto grazie per aver risposto.
    Chiedo scusa se mi sono spiegato male, ma semplicemente vorrei visualizzare sul tablet android l'output dell'applicazione così come sulla pagina web che utilizza il web service e non tutta una serie di caratteri vale a dire ...
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap ....

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E sulla pagina WEB come viene "interpretato" quel messaggio Soap? Perchè, da una breve ricerca, mi pare che il tuo codice sopra sia corretto. Ora, come detto, se il WebService esporta i dati in un formato "non standard" (e quel DataSet di sicuro non è standard) allora chi lo riceve deve essere in grado di gestirlo. Evidentemente, la pagina Web lo interpreta... in che modo? Boh... in ogni caso devi interpretarlo anche tu esattamente come fa la pagina web.

    Se il WebService esportasse i dati come "tipi primitivi" non avresti grosse difficoltà, ma vedendo il tuo primo post, ho il sospetto che chi ha scritto quel WS non si sia preoccupato tanto di renderlo "standard"... ha esportato un oggetto "complesso" (come può esserlo, appunto, quel "DataSet"), che è stato "trasformato" in un XML con uno specifico DTD e chi riceverà questo oggetto dovrà per forza di cose interpretarselo (è tipico dei programmatori di casa Microsoft fare cose di questo genere). Evidentemente la pagina WEB ha gli stessi strumenti del WebService (sarà una pagina ASP.NET, che quindi ha accesso a tutto il framework .NET? E' possibile, io non posso saperlo).

    Se tu non conosci la struttura degli oggetti esportati dal WebService, devi farti dare la documentazione da chi l'ha sviluppato e interpretartelo a mano.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    E sulla pagina WEB come viene "interpretato" quel messaggio Soap? Perchè, da una breve ricerca, mi pare che il tuo codice sopra sia corretto. Ora, come detto, se il WebService esporta i dati in un formato "non standard" (e quel DataSet di sicuro non è standard) allora chi lo riceve deve essere in grado di gestirlo. Evidentemente, la pagina Web lo interpreta... in che modo? Boh... in ogni caso devi interpretarlo anche tu esattamente come fa la pagina web.

    Se il WebService esportasse i dati come "tipi primitivi" non avresti grosse difficoltà, ma vedendo il tuo primo post, ho il sospetto che chi ha scritto quel WS non si sia preoccupato tanto di renderlo "standard"... ha esportato un oggetto "complesso" (come può esserlo, appunto, quel "DataSet"), che è stato "trasformato" in un XML con uno specifico DTD e chi riceverà questo oggetto dovrà per forza di cose interpretarselo (è tipico dei programmatori di casa Microsoft fare cose di questo genere). Evidentemente la pagina WEB ha gli stessi strumenti del WebService (sarà una pagina ASP.NET, che quindi ha accesso a tutto il framework .NET? E' possibile, io non posso saperlo).

    Se tu non conosci la struttura degli oggetti esportati dal WebService, devi farti dare la documentazione da chi l'ha sviluppato e interpretartelo a mano.


    Ciao.
    Grazie.

    Il web service l'ho sviluppato personalmente e ne conosco sia la struttura che gli oggetti... ed hai ragione è una pagina ASP.NET che accede al framework .NET.

    La mia carenza è su Android\Java e da una ricerca (l'ennesima) fatta su google mi è sembrato di capire che Android non supporta il Dataset di ASP.NET ed è necessario convertire lo stesso Dataset in JSON per farlo interpretare correttamente su tablet e smartphone.

  7. #7
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Se il WebService esportasse i dati come "tipi primitivi" non avresti grosse difficoltà,

    Ciao.
    Cosa intendi?

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da wegawhite Visualizza il messaggio
    Cosa intendi?
    Esattamente quello che hai scritto tu nel tuo messaggio precedente:


    Quote Originariamente inviata da wegawhite Visualizza il messaggio
    è necessario convertire lo stesso Dataset in JSON per farlo interpretare correttamente su tablet e smartphone.

    JSON è uno dei possibili modi (il più "versatile")... nessuno ti vieta di spedire direttamente tutto come XML, in cui la struttura è definita e conosciuta dal client.

    Il problema è appunto che spedendo "oggetti", il framework lo "traduce" in una struttura XML complessa e definita da un DTD proprietario (questo perchè la struttura dati che si sta spedendo contiene un sacco di informazioni che al client possono anche non servire).

    Faccio un esempio per chiarificare: se io avessi delle informazioni in una JTable e spedissi in output sul mio WS la JTable, assieme ai dati (cioè, la sostanza), verrebbe serializzata anche tanta fuffa (informazioni sullo stato della tabella, sulle personalizzazioni dei bordi delle celle, sui renderer per la visualizzazione dei valori, magari anche di alcuni listener, ecc)... ma al client magari frega solo dei dati... e magari questi dati sono delle semplicissime stringhe. Ecco che bisogna fare attenzione a ciò che si spedisce in output.

    Spedendo la JTable otterrei un XML che difficilmente qualcuno saprebbe interpretare facilmente.
    Quello che dovrei fare è spedire solo i dati contenuti nella JTable, magari organizzati in un XML (o JSON), in modo che chi li riceve sia in grado di interpretarli facilmente e sia libero di rappresentarli come meglio crede.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    utilissime le indicazioni!

  10. #10
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Esattamente quello che hai scritto tu nel tuo messaggio precedente:





    JSON è uno dei possibili modi (il più "versatile")... nessuno ti vieta di spedire direttamente tutto come XML, in cui la struttura è definita e conosciuta dal client.

    Il problema è appunto che spedendo "oggetti", il framework lo "traduce" in una struttura XML complessa e definita da un DTD proprietario (questo perchè la struttura dati che si sta spedendo contiene un sacco di informazioni che al client possono anche non servire).

    Faccio un esempio per chiarificare: se io avessi delle informazioni in una JTable e spedissi in output sul mio WS la JTable, assieme ai dati (cioè, la sostanza), verrebbe serializzata anche tanta fuffa (informazioni sullo stato della tabella, sulle personalizzazioni dei bordi delle celle, sui renderer per la visualizzazione dei valori, magari anche di alcuni listener, ecc)... ma al client magari frega solo dei dati... e magari questi dati sono delle semplicissime stringhe. Ecco che bisogna fare attenzione a ciò che si spedisce in output.

    Spedendo la JTable otterrei un XML che difficilmente qualcuno saprebbe interpretare facilmente.
    Quello che dovrei fare è spedire solo i dati contenuti nella JTable, magari organizzati in un XML (o JSON), in modo che chi li riceve sia in grado di interpretarli facilmente e sia libero di rappresentarli come meglio crede.


    Ciao.
    Dunque ho fatto un passo avanti usando JSON ... nel tablet l'output è molto più pulito fa vedere tutto senza fuffa ma cmq la stringa è sempre delimitata da:
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap ....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.