none
Flux XML via HTTP RRS feed

  • Question

  • Bonjour,

     

    Je dois réaliser un bout de code en vb.net qui:

    Envoi une requete XML à une page ASP

    Recupère le contenu XML de la réponse et la traite.

     

    Existe t'il un objet .NET permettant ceci en windows forms.

     

     

    Merci d'avance.

    jeudi 23 août 2007 06:05

Toutes les réponses

  • Bonjour et merci pour cette réponse.

     

    En fait je veux faire la meme chose en VB.NET 2005 (dans un service windows) qu'avec un XMLHTTPRequest

     

    1- Envoyer une requete xml à une page web

    2- Enregistrer la réponse (xml) dans un fichier.

     

    Je n'ai pas trouvé d'objet permettant de faire ceci dans system.xml.

     

    Merci de votre aide.

     

    vendredi 24 août 2007 05:42
  • J'ai trouvé:

     

    En fait il faut utiliser system.net.webrequest. Voici un petit exemple:

     

    ' Construction de l'objet de la requete
            Dim MyXML As WebRequest = WebRequest.Create("http://www.monsite.fr/mapage.asp")
            MyXML.Method = "POST"

            ' Construction de la demande XML 

            Dim strXML As String
            strXML = "<?xml version=""1.0"" encoding=""utf-8""?>"
            strXML = strXML & "<request version=""1"">"
            strXML = strXML & "</request>"


            ' transformation en tableau de byte
            Dim encoding As New System.Text.ASCIIEncoding()
            Dim byte1 As Byte() = encoding.GetBytes(strXML)

            ' Affectation au stream de la requete
            MyXML.ContentLength = byte1.Length
            Dim newStream As System.IO.Stream = MyXML.GetRequestStream()
            newStream.Write(byte1, 0, byte1.Length)
            newStream.Close()

            ' Récupération de la réponse
            Dim rep As System.Net.WebResponse
            Try
                rep = MyXML.GetResponse()
                ' Analyse du flux de la réponse
                Dim ReceiveStream As System.IO.Stream = rep.GetResponseStream()

                Dim encode As System.Text.Encoding = New System.Text.UTF8Encoding()
                ' Récupération dans un streamreader au format désiré .
                Dim readStream As New System.IO.StreamReader(ReceiveStream, encode)

      ' Parcours ligne à ligne...

                While Not readStream.EndOfStream
                    Console.WriteLine(readStream.ReadLine())
                End While

                ' Fermeture des flux
                readStream.Close()
                rep.Close()
            Catch ex As Exception
                ' Erreurs à gérer par exemple 404 non trouvée...
            End Try

     

    lundi 27 août 2007 18:54