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 51 52 53 54 55
|
Shared Function Download(ByVal url As String) As String
' Déclaration des variables
Dim LeDomaine As Integer
Dim LeURL As String = ""
Dim LeHost As String = ""
Dim LeChemin As String = ""
Dim Resultat As String = ""
Dim RecupHTTPChaine As String = ""
Dim WebClient As New System.Net.Sockets.TcpClient
Dim WebStream As NetworkStream
Dim WebWriter As StreamWriter
Dim WebReader As StreamReader
' On découpe l'url envoyée en paramètre à la fonction
LeDomaine = InStr(UCase(url), "HTTP://")
If LeDomaine > 0 Then
LeURL = Mid(url, LeDomaine + 7)
Else
LeURL = url
End If
LeDomaine = InStr(LeURL, "/")
If LeDomaine > 0 Then
LeHost = Mid(LeURL, 1, LeDomaine - 1)
LeChemin = Mid(LeURL, LeDomaine)
Else
LeHost = LeURL
LeChemin = "/"
End If
' On construit notre requete HTTP
RecupHTTPChaine = "GET " & LeChemin & " HTTP/1.1" & vbCrLf & "Host: " & LeHost & vbCrLf & "Connection: Close" & vbCrLf & vbCrLf
' On ouvre une socket sur le port 80
WebClient.Connect(LeHost, 80)
WebStream = WebClient.GetStream
WebWriter = New StreamWriter(WebStream)
WebWriter.Write(RecupHTTPChaine)
WebWriter.Flush()
WebReader = New StreamReader(WebStream)
' On stock la page html dans notre variable "Resultat"
Resultat = WebReader.ReadToEnd()
' On ferme la socket
WebStream.Close()
WebStream = Nothing
WebClient.Close()
WebClient = Nothing
WebWriter.Close()
WebWriter = Nothing
WebReader.Close()
WebReader = Nothing
' On renvoi ce que l'on a récupéré
Download = Resultat
End Function |