Net.WebClient()

cs_sofiane2 Messages postés 23 Date d'inscription dimanche 6 avril 2003 Statut Membre Dernière intervention 1 mai 2013 - 7 sept. 2012 à 17:04
cs_sofiane2 Messages postés 23 Date d'inscription dimanche 6 avril 2003 Statut Membre Dernière intervention 1 mai 2013 - 10 sept. 2012 à 13:18
j'essaye de reccupere certain champs en vb net

voici le code


 Function recup(ByVal imprimante As String)


        Dim WEB_CLIENT As New Net.WebClient()

        WEB_CLIENT.UseDefaultCredentials = True
        'Dim DOWNLOAD_DATA = System.Text.Encoding.Default.GetString(WEB_CLIENT.DownloadData("http://" & imprimante & "/device_status.html"))
        Dim MonStream = New System.IO.StreamReader(WEB_CLIENT.OpenRead("http://" & imprimante & "/device_status.html"), System.Text.Encoding.Default)
        Dim DOWNLOAD_DATA = MonStream.ReadToEnd()
        Dim posMag1 = InStr(DOWNLOAD_DATA, "<td>Magasin 1</td>")
        Label1.Text = Replace(Mid(DOWNLOAD_DATA, posMag1 + 26, 15), "nbsp;</td>", "")

        Dim posMag2 = InStr(DOWNLOAD_DATA, "<td>Magasin 2</td>")
        Label2.Text = Replace(Mid(DOWNLOAD_DATA, posMag2 + 26, 15), "nbsp;</td>", "")

        Dim posMag3 = InStr(DOWNLOAD_DATA, "<td>Magasin 3</td>")
        Label3.Text = Replace(Mid(DOWNLOAD_DATA, posMag3 + 26, 15), "nbsp;</td>", "")

        Dim posMag4 = InStr(DOWNLOAD_DATA, "<td>Plateau d&#39;alim. aux.</td>")
        Label4.Text = Replace(Mid(DOWNLOAD_DATA, posMag4 + 41, 13), "</td>", "")

        ''''''''''''''''''''''''toner
        Dim tonerNoir = InStr(DOWNLOAD_DATA, "<td>Toner noir</td>")
        Label5.Text = Replace(Mid(DOWNLOAD_DATA, tonerNoir + 40, 10), "</td>", "")

        Dim tonerCyan = InStr(DOWNLOAD_DATA, "<td>Toner cyan</td>")
        Label6.Text = Replace(Mid(DOWNLOAD_DATA, tonerCyan + 40, 10), "</td>", "")

        Dim tonerMagenta = InStr(DOWNLOAD_DATA, "<td>Toner magenta</td>")
        Label7.Text = Replace(Mid(DOWNLOAD_DATA, tonerMagenta + 43, 10), "</td>", "")

        Dim tonerJaune = InStr(DOWNLOAD_DATA, "<td>Toner jaune</td>")
        Label8.Text = Replace(Mid(DOWNLOAD_DATA, tonerJaune + 40, 11), "</td>", "")

        MonStream.Dispose()
        MonStream = Nothing
        DOWNLOAD_DATA = Nothing 'libère le streamreader

        WEB_CLIENT.Dispose()
        WEB_CLIENT = Nothing

    End Function
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Try
            recup(ComboBox1.Text)

        Catch ex As System.Net.WebException
            MsgBox("Le serveur a commis une violation de protocole. Section=ResponseBody Detail=Le format du segment de réponse n'est pas valide")

        End Try
    End Sub



+---------------------++ prog_sofiane ++---------------------+


lorsque je selection un item une premiere fois le code fontionne bien, si je le selectionne une 2 eme fois sa m'affiche un message d'erreur :
Le serveur a commis une violation de protocole. Section=ResponseBody Detail=Le format du segment de réponse n'est pas valide


a cette ligne de code

Dim MonStream = New System.IO.StreamReader(WEB_CLIENT.OpenRead("http://" & imprimante & "/device_status.html"), System.Text.Encoding.Default)

malgré le WEB_CLIENT.Dispose()


aidez moi svp

4 réponses

Utilisateur anonyme
7 sept. 2012 à 17:59
Enlève ton bloc 'try catch' et laisse juste
recup(ComboBox1.Text)

Ceci afin d'obtenir la véritable erreur car là tu n'as que le message inscrit dans ta messagebox.
0
Utilisateur anonyme
7 sept. 2012 à 18:01
Et revois tes cours de programmation concernant la déclaration des variables...
0
Utilisateur anonyme
7 sept. 2012 à 18:11
Ta fonction ne renvoie aucune valeur.
Utilise l'instruction Using / End using pour libérer l'objet StreamReader automatiquement.
On active Option Strict dans les propriétés du projet puis on corrige les erreurs.
Le sujet est posté dans la mauvaise section.
On dit bonjour pour être poli (voir règlement du forum)
Voilà quand tu auras réalisé tout ceci, on passera à la suite.
0
cs_sofiane2 Messages postés 23 Date d'inscription dimanche 6 avril 2003 Statut Membre Dernière intervention 1 mai 2013
10 sept. 2012 à 13:18
bonjour
j'essaye de reccupere certain champs en vb net

voici le code

 sub recup(ByVal imprimante As String)


        Dim WEB_CLIENT As New Net.WebClient()

        WEB_CLIENT.UseDefaultCredentials = True
        'Dim DOWNLOAD_DATA = System.Text.Encoding.Default.GetString(WEB_CLIENT.DownloadData("http://" & imprimante & "/device_status.html"))
        Dim MonStream = New System.IO.StreamReader(WEB_CLIENT.OpenRead("http://" & imprimante & "/device_status.html"), System.Text.Encoding.Default)
        Dim DOWNLOAD_DATA = MonStream.ReadToEnd()
        Dim posMag1 = InStr(DOWNLOAD_DATA, "<td>Magasin 1</td>")
        Label1.Text = Replace(Mid(DOWNLOAD_DATA, posMag1 + 26, 15), "nbsp;</td>", "")

        Dim posMag2 = InStr(DOWNLOAD_DATA, "<td>Magasin 2</td>")
        Label2.Text = Replace(Mid(DOWNLOAD_DATA, posMag2 + 26, 15), "nbsp;</td>", "")

        Dim posMag3 = InStr(DOWNLOAD_DATA, "<td>Magasin 3</td>")
        Label3.Text = Replace(Mid(DOWNLOAD_DATA, posMag3 + 26, 15), "nbsp;</td>", "")

        Dim posMag4 = InStr(DOWNLOAD_DATA, "<td>Plateau d&#39;alim. aux.</td>")
        Label4.Text = Replace(Mid(DOWNLOAD_DATA, posMag4 + 41, 13), "</td>", "")

        ''''''''''''''''''''''''toner
        Dim tonerNoir = InStr(DOWNLOAD_DATA, "<td>Toner noir</td>")
        Label5.Text = Replace(Mid(DOWNLOAD_DATA, tonerNoir + 40, 10), "</td>", "")

        Dim tonerCyan = InStr(DOWNLOAD_DATA, "<td>Toner cyan</td>")
        Label6.Text = Replace(Mid(DOWNLOAD_DATA, tonerCyan + 40, 10), "</td>", "")

        Dim tonerMagenta = InStr(DOWNLOAD_DATA, "<td>Toner magenta</td>")
        Label7.Text = Replace(Mid(DOWNLOAD_DATA, tonerMagenta + 43, 10), "</td>", "")

        Dim tonerJaune = InStr(DOWNLOAD_DATA, "<td>Toner jaune</td>")
        Label8.Text = Replace(Mid(DOWNLOAD_DATA, tonerJaune + 40, 11), "</td>", "")

        MonStream.Dispose()
        MonStream = Nothing
        DOWNLOAD_DATA = Nothing 'libère le streamreader

        WEB_CLIENT.Dispose()
        WEB_CLIENT = Nothing

    End Function
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
       ' Try
            recup(ComboBox1.Text)

       ' Catch ex As System.Net.WebException
          '  MsgBox("Le serveur a commis une violation de protocole. Section=ResponseBody Detail=Le format du segment de réponse n'est pas valide")

       ' End Try
    End Sub




lorsque je selection un item une premiere fois le code fontionne bien, si je le selectionne une 2 eme fois sa m'affiche un message d'erreur :
Le serveur a commis une violation de protocole. Section=ResponseBody Detail=Le format du segment de réponse n'est pas valide


a cette ligne de code

Dim MonStream = New System.IO.StreamReader(WEB_CLIENT.OpenRead("http://" & imprimante & "/device_status.html"), System.Text.Encoding.Default)



est ce que sa te va!


est c'est pas au niveau du stream que sa bloque

c'est le webclien WEB_CLIENT.DownloadData je sais pas comment le decharger !!!!

+---------------------++ prog_sofiane ++---------------------+
0