Domanda

Visual Studio semplifica la chiamata a un servizio Web, cercando di capire cosa succede sotto le copertine è difficile.

Come posso vedere l'XML effettivo generato dalla mia app .Net quando faccio una chiamata a un servizio web?

È stato utile?

Altri suggerimenti

Esempio MSDN codice che implementa un TraceExtension per SOAP; Puoi usare così com'è o modificare per accedere come vuoi (ho usato un DB e l'ho tenuto non solo per il debug ma per archiviare tutte le comunicazioni per dopo).

Per le chiamate al servizio web SOAP, ho trovato SoapUI estremamente utili. Può connettersi a un WSDL per ottenere le definizioni dei metodi, creare inviluppi di scheletri per invocare tali metodi e puoi vedere il risultato completo dopo l'invocazione.

Al di fuori di Visual Studio, puoi utilizzare lo strumento Fiddler per vedere esattamente cosa è contenuto nelle richieste e nelle risposte.

All'interno di Visual Studio, una cosa che potresti fare è scrivere un DataSet in un file.

myDataSet.WriteXml(filename);

Ecco un altro esempio di come puoi farlo in Visual Studio. Tutto ciò che fa è prendere la risposta dal servizio web e salvarla in un file specificato:

Dim url As String = "http://web.service.com/"
Dim request As WebRequest = WebRequest.Create(url)
Dim response As WebResponse = request.GetResponse()
Dim stream As Stream = response.GetResponseStream()

Dim xmlDoc As XmlDocument = New XmlDocument
xmlDoc.Load(stream)
xmlDoc.Save("C:\Temp\foo.xml")

Il suggerimento di utilizzare Fiddler mi è bastato per coinvolgere il mio team IT. Avevano già una copia di un programma simile WireShark installato sul server web.

Non essendo molto esperto di rete, inizialmente pensavo di poter controllare le richieste fatte dal mio PC al servizio web. Non ha funzionato. Il monitoraggio delle richieste non appena sono entrate nel server web mi ha dato la struttura dell'intestazione http e della busta soap.

Grazie per tutte le risposte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top