Bonjour

J'essaye d'utiliser ce code trouvé ici-même pour télécharger des pages web de manière asynchrone afin de ne pas bloquer l'interface.

Comme je débute, c'est une question basique mais je ne trouve pas la bonne syntaxe (en bleu) pour créer un nouvel objet et lancer les choses :-/

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Threading.Thread
Imports System.Windows.Forms

Public Class RequestState
    Public Request As HttpWebRequest

    Public Sub New()
        Request = Nothing
    End Sub
End Class

Public Class GetHttpAsync
    Public Sub GetPage(ByVal url As String)
        Dim req As HttpWebRequest
        req = CType(WebRequest.Create(url), HttpWebRequest)

        Dim rs As New RequestState
        rs.Request = req

        req.BeginGetResponse(New AsyncCallback(AddressOf ResponseCallback), rs)
    End Sub

    Private Shared Sub ResponseCallback(ByVal ar As IAsyncResult)
        Dim rs As RequestState = CType(ar.AsyncState, RequestState)
        Dim req As HttpWebRequest = rs.Request
        Dim resp As HttpWebResponse = CType(req.EndGetResponse(ar), HttpWebResponse)
        Dim responseStream As Stream = resp.GetResponseStream()
        Dim sr As StreamReader = New StreamReader(responseStream, Encoding.UTF8)
        Dim strContent As String = sr.ReadToEnd()

        responseStream.Close()
    End Sub
End Class

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'BAD Dim MyGetHTTP As GetHttpAsync = New GetHttpAsync
        'BAD Dim MyGetHTTP As GetHttpAsync = GetHttpAsync

        'Reference to a non-shared member requires an object reference
        GetHttpAsync.GetPage("http://www.google.com")

    End Sub
End Class
Merci pour toute aide.