none
Porbléme avec HttpWebResponse RRS feed

  • Question

  • Bonjour,

    j'ai crée un proxy checker avec listview1, mon probléme c'est quand je clique sur sur le bouton1, il m'affiche une erreur  avec Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse):

    voici mon code :

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            If ListView1.Items.Count > 0 Then
                Me.Button1.Text = "Checking..."
                For i = ListView1.Items.Count - 1 To 0 Step -1
                    For j = ListView1.Items(i).SubItems.Count - 1 To 0 Step -1
                        Dim IP As String = ListView1.Items(i).Text
                        Dim Port As String = ListView1.Items(i).SubItems(j).Text
                        Dim request As HttpWebRequest = HttpWebRequest.Create("https://www.google.fr")
                        request.Proxy = New WebProxy(IP & ":" & Port, True)
                        request.Timeout = NumericUpDown1.Value * 1000
                        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
                        If response.StatusCode = HttpStatusCode.OK Then
                            ListView1.Items(i).SubItems.Add("OK")
                            ListView1.Items(i).SubItems(j).ForeColor = Color.DarkGreen
                        Else
                            ListView1.Items(i).SubItems.Add("Échoué")
                            ListView1.Items(i).SubItems(j).ForeColor = Color.Red
                        End If
                    Next j
                Next i
            End If

    Pouvez-vous me dire comment corriger ce petit probléme?

    cordialement,

    lundi 3 avril 2017 10:44

Réponses

  • Bonsoir,

    j'ai trouver la solution a mon probléme mon probléme que listview1 freeze au bout de 2m32 , il fois la recherche est terminer il ne freeze plus. pourquoi ça freeze quand il test les proxy? ou vient le probléme?

    freeze quand il checking :

    un fois terminer :

    voici mon code :

    Private Delegate Sub addtolist()
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Me.Button2.Text = "Chercking..."
            Dim depart As New Thread(AddressOf checkProxys)
            depart.Start()
        End Sub
    
    Private Sub checkProxys()
            If ListView1.InvokeRequired Then
                ListView1.Invoke(New addtolist(AddressOf checkProxys))
            Else
                stopwatch.Start()
                For i As Integer = 0 To ListView1.Items.Count - 1
                    Dim lv As ListViewItem = ListView1.Items(i)
                    Try
                        Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://www.google.fr")
                        request.Proxy = New WebProxy(lv.Text & ":" & lv.SubItems(1).Text)
                        request.Timeout = NumericUpDown2.Value * 1000
                        request.GetResponse()
                        lv.SubItems.Add("OK")
                        lv.SubItems(0).ForeColor = Color.Green
                    Catch
                        lv.SubItems.Add("FAILED")
                        lv.SubItems(0).ForeColor = Color.Red
                    End Try
                    Label4.Invoke(New Action(Of String)(AddressOf compteur), New Object() {String.Concat(New Object() {String.Format("{0:00}:{1:00}:{2:00}", Math.Floor(stopwatch.Elapsed.Hours), stopwatch.Elapsed.Minutes, stopwatch.Elapsed.Seconds)})})
                Next
            End If
            Button2.Invoke(New Action(Of String)(AddressOf Message), "Terminer")
            stopwatch.Stop()
        End Sub
    
    Private Sub Message(ByVal status As String)
            Button2.Text = status
        End Sub
    
        Private Sub compteur(ByVal status As String)
            Label4.Text = status
        End Sub

    Merci de votre réponse,

    cordialement,



    lundi 10 avril 2017 18:16

Toutes les réponses

  • Bonjour zorro591,

    Essayez d'appeler la méthode

    response.Close()

    pour fermer la connexion ou ajoutez "Using clause" avec l'utilisation de HttpWebResponse, quelque chose comme ceci:

    Using response = CType(request.GetResponse(), HttpWebResponse) 

    End Using 


    Cordialement,
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.


    mardi 4 avril 2017 10:20
    Modérateur
  • Bonjour,

    voici le code :

     If ListView1.Items.Count > 0 Then
                Me.Button1.Text = "Checking..."
                For i As Integer = 0 To ListView1.Items.Count - 1
                    Dim lv As ListViewItem = ListView1.Items(i)
                    lv.EnsureVisible()
                    Dim ip As String = lv.Text
                    Dim port As String = lv.SubItems(1).Text
                    Dim proxy As String = ip + ":" + port
                    Try
                        Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://www.google.fr")
                        request.Proxy = New WebProxy(proxy)
                        request.Timeout = NumericUpDown1.Value * 1000
                        Dim response As System.Net.HttpWebResponse = request.GetResponse()
                        If response.StatusCode = HttpStatusCode.OK Then
                            lv.SubItems.Add("OK")
                            lv.SubItems(0).ForeColor = Color.DarkGreen
                            index = index + 1
                        Else
                            lv.SubItems.Add("Failed")
                            lv.SubItems(0).ForeColor = Color.Red
                        End If
                    Catch ex As Exception
                        lv.SubItems.Add("Failed")
                        lv.SubItems(0).ForeColor = Color.Red
                    End Try
                Next
            End If

    Pourquoi , il m'affiche toujours "Failed" dans listview1? comment faire pour tester une adress ip et port si j'arrive a connecter sur google.

    cordialement,

    jeudi 6 avril 2017 09:40
  • je pense que vous essayez de déclarer des adresses IP de proxy pour vos requêtes venant d'adresse IP lointaines: Brésil, Uganda, Afghanistan, Amazon aux US.... SERIEUSEMENT???

    Vous ne comprenez probablement pas ce qu'est un proxy... et je soupçonne que nous ne devrions pas vous aider à moins que vous nous expliquiez pourquoi vous voulez utiliser ces adresses IP.

    jeudi 6 avril 2017 12:08
  • Bonsoir,

    j'ai trouver la solution a mon probléme mon probléme que listview1 freeze au bout de 2m32 , il fois la recherche est terminer il ne freeze plus. pourquoi ça freeze quand il test les proxy? ou vient le probléme?

    freeze quand il checking :

    un fois terminer :

    voici mon code :

    Private Delegate Sub addtolist()
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Me.Button2.Text = "Chercking..."
            Dim depart As New Thread(AddressOf checkProxys)
            depart.Start()
        End Sub
    
    Private Sub checkProxys()
            If ListView1.InvokeRequired Then
                ListView1.Invoke(New addtolist(AddressOf checkProxys))
            Else
                stopwatch.Start()
                For i As Integer = 0 To ListView1.Items.Count - 1
                    Dim lv As ListViewItem = ListView1.Items(i)
                    Try
                        Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://www.google.fr")
                        request.Proxy = New WebProxy(lv.Text & ":" & lv.SubItems(1).Text)
                        request.Timeout = NumericUpDown2.Value * 1000
                        request.GetResponse()
                        lv.SubItems.Add("OK")
                        lv.SubItems(0).ForeColor = Color.Green
                    Catch
                        lv.SubItems.Add("FAILED")
                        lv.SubItems(0).ForeColor = Color.Red
                    End Try
                    Label4.Invoke(New Action(Of String)(AddressOf compteur), New Object() {String.Concat(New Object() {String.Format("{0:00}:{1:00}:{2:00}", Math.Floor(stopwatch.Elapsed.Hours), stopwatch.Elapsed.Minutes, stopwatch.Elapsed.Seconds)})})
                Next
            End If
            Button2.Invoke(New Action(Of String)(AddressOf Message), "Terminer")
            stopwatch.Stop()
        End Sub
    
    Private Sub Message(ByVal status As String)
            Button2.Text = status
        End Sub
    
        Private Sub compteur(ByVal status As String)
            Label4.Text = status
        End Sub

    Merci de votre réponse,

    cordialement,



    lundi 10 avril 2017 18:16