Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [WebService] Catturare XML in e out

    Ciao,
    sto utilizzando un grosso WebService fornito da Eurostar alla compagnia per cui lavoro, ma ho qualche difficolta' nella gestione di alcuni oggetti restituiti dal ws (che e' molto grande e non facilissimo da gestire).
    Temo che ci sia qualche problema nei dati inviati, percio' avrei bisogno di catturare, in qualche modo il contenuto XML (per intero) dei messaggi SOAP inviati al ws e di quelli da questo ricevuti.
    Cio' che voglio fare, e' creare un sistema di logging che, ad ogni errore intercettato, salva i messaggi xml per intero, in modo da capire piu' agevolmente dove sia l'errore.
    Qualche suggerimento?
    Grazie in anticipo

  2. #2
    la risposta del webservice è sicuramente un XML. quindi lo metti dentro ad un bel XMLDocument e te lo salvi in una dir di LOG.


    poi se per ogni XML che ti restiuisce è previsto un bel XSD meglio ancora cosi che puoi scremarti solo quello che ti serve.

  3. #3
    Ciao Daniele,
    intanto grazie per la risposta, sei stato gentilissimo.
    Mi faresti un esempio su come catturare la risposta del webservice in formato xml? (anche la richiesta)
    Non ho capito come fare perche' quello che ottengo in risposta alle funzioni/metodi del ws sono degli oggetti con delle proprieta'....non l'xml...e non ho capito dove trovo quest'ultimo

  4. #4
    Up

  5. #5
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Puoi scaricare il SOAP Toolkit fornito da Microsoft che all'interno contiene il tool Proxy Trace per tracciare i messaggi SOAP scambiati.

    Oppure prova a vedere i tools che trovi su www.pocketsoap.com
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  6. #6
    Originariamente inviato da biste
    Puoi scaricare il SOAP Toolkit fornito da Microsoft che all'interno contiene il tool Proxy Trace per tracciare i messaggi SOAP scambiati.

    Oppure prova a vedere i tools che trovi su www.pocketsoap.com
    Grazie biste, i suggerimenti che mi hai dato sono non buoni, ma OTTIMI

    Avevo trovato nel frattempo qualcos'altro circa Soap Extension, del codice da scrivere in .Net che, se non ho capito male, dovrebbe consentirmi di catturare Xml direttamente nella mia applicazione, non dall'esterno.
    Ma al momento l'importante e' catturare i messaggi in qualche modo, per verificare il contenuto delle richieste e delle risposte.
    Le utility che mi hai suggerito funzionano entrambe a meraviglia, ma c'e' un piccolo problema circa SSL.
    Ho provato ad utilizzare entrambe con un'applicazioncina di prova che fa uso di un semplicissimo WebService free di Tiscali per la verifica dell'esistenza di un indirizzo email; ho configurato l'utility (ho provato con entrambe, il risultato e' lo stesso, ottimo) per stare in ascolto sulla 8080, e mettendovi come server di destinazione quello di Tiscali, sostituendo invece nell'url del riferimento al ws, l'indirizzo del ws con server (localhost)/porta dell'utility proxy. Funziona a meraviglia, mi cattura soltanto i messaggi inviati/ricevuti in xml tra applicazione e ws.
    Il problema sorge proprio con l'applicazione in cui mi serve...
    Il link del ws e' https://integration.eurostar.com:11448/ecc/ecc, ed e' necessaria un'autenticazione username/password oltre ad esserci https e una restrizione di accesso che consente il collegamento soltanto al server live (o meglio quello di test, al momento). Se configuro la mia applicazione per collegarsi direttamente al ws, essa funziona perfettamente e c'e' comunicazione con il ws. Ma se vi configuro il proxy di mezzo, il trace dei messaggi sia con Soap Trace Utility sia con le altre utility di quell'altro sito, non funziona perche' richiede l'autenticazione username e password.

    Questa e' l'errore catturato nell'applicazione quando tenta di connettersi con la trace utility di mezzo:

    http://www.webcoders.it/images/ws1.jpg

    Questo e' che viene visualizzato nella trace utility, cioe' una mazza:

    http://www.webcoders.it/images/ws2.jpg

    E la semplice configurazione della trace utility:

    http://www.webcoders.it/images/ws3.jpg

    Quell'indirizzo, integration.eurostar.com:11448, e' l'indirizzo che, se messo direttamente nell'url del ws nella mia applicazione, senza utility diu mnezzo, funziona a meraviglia, l'applicazione si collega al ws e riceve i dati richiesti. Adesso invece nell'applicazione ho messo come indirizzo https://192.0.0.222:8080/ecc/ecc
    dove 192.0.0.222 e' l'ip della mia workstation e 8080 la porta su cui rimane in ascolto la trace utility.
    Che cosa posso fare per inviare, attraverso la trace utility, anche la username e la password? (ammesso che sia sufficiente per far funzionare il tutto, visto che c'e' ssl di mezzo)

    Un enorme grazie




  7. #7
    up

  8. #8
    Originariamente inviato da Nosophoros
    Ciao Daniele,
    intanto grazie per la risposta, sei stato gentilissimo.
    Mi faresti un esempio su come catturare la risposta del webservice in formato xml? (anche la richiesta)
    Non ho capito come fare perche' quello che ottengo in risposta alle funzioni/metodi del ws sono degli oggetti con delle proprieta'....non l'xml...e non ho capito dove trovo quest'ultimo
    nel tuo progetto aggiungi una WEB REFERENCE (il tuo webservice)

    da una qualsiasi pagina .aspx lo utilizzi cosi:
    codice:
    nomewebreference.nomeclassewebservice myProxy = new nomewebreference.nomeclassewebservice ();
    
    XmlDataDocument myXml = new XmlDataDocument();
    myXml.Load(Server.MapPath("miofile.xml"));
    
    string risultato = myProxy.nomefunzionepubblicadelwebservice(myXml.OuterXml);
    
    response.write(risultato);

    praticamente ho inviato un file XML sotto forma di stringa (OuterXml) aspettandomi una stringa di ritorno.

    se scrivi questo:
    nomewebservice.asmx?op=nomefunzionepubblica

    dovresti vedere il file SOAP in ingressp e in uscita.

    codice:
    <?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>
        <nomefunzionepubblica
    xmlns="namespace">
          <parametro1>string</parametro1>
        </nomefunzionepubblica>
      </soap:Body>
    </soap:Envelope>

    dentro a parametro1 ci puoi mettere tutto, chiaramente se ci vuoi mettere un file XML devi stare attento ai caratteri speciali.

    una possibile risposta di questo SOAP è questa:

    codice:
    <?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>
        <nomefunzionepubblica xmlns="namespace">
          <nomefunzionepubblicaResult>string</nomefunzionepubblicaResult>
        </nomefunzionepubblica>
      </soap:Body>
    </soap:Envelope>
    usando .NET tutto questo ti risulterà invisibile, vedrai solo il risultato dentro alla tua variabile. Altrimenti se utillizzi un'applicativo VB6 o ASP vedrai tutto e dovrai scremarti la risposta.


    Come risposta puoi ricevere benissimo un file XML poi basta che lo metti dentro ad un XMLDocument e fai quello che vuoi.

  9. #9
    Grazie Daniele,
    sei stato molto gentile ad intervenire così presto
    La cattiva notizia è che purtroppo non mi è stato possibile utilizzare quel metodo (almeno io non ci sono riuscito con successo) perché il web service è fatto in java ed è un mezzo casino. La buona notizia è che ho risolto con una soluzione che è una figata, e domani la posto perché potrà essere sicuramente MOLTO utile ad altri

    Ciao, e grazie tantissimo per l'interessamento, sei come sempre gentilissimo

  10. #10
    posta posta cosi vediamo tutti come si fa a connettersi ad un web service in java.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.