Bonjour,
Voici un simple exemple qui illustre l'utilisation des deux classes HttpWebRequest et HttpWebResponse pour acquérir un Paquet HTTP
Dans cette petite source, on utilise ces deux classe pour vérifier si une réponse du serveur contient des données d'une image et si oui la transformée d'un NetworkStream en Bitmap, puis l'afficher dans un TextBox.
Bon prog
Source / Exemple :
'=====================================================================================
' # # '
' ## # # # # @ @ @ '
' ### " ##### # # # # " " # '
' ## # ## ##### # # #### # # # # # '
' ########### ####### ## # # ## # # # # # # '
' ## # #### # # ## # # # # '
' ## ## @ # # ##### # # # # # # # ## '
' # " ## #### # ## # #### ###### # ## '
' # ##### ## # ## @ # # # # # '
' # # " # # # # # # '
' # ## # # ################################# '
' ##### ##### ### # ## '
' ###### # ## '
'=====================================================================================
'Utilisation Libre
'Auteur: Boutemine Oualid
Imports System
Imports System.Net
Imports System.IO
Public Class frmMain
'''<summary>
'''The stream buffer size.
'''</summary>
Public Const BufferSize As Integer = 512 * 1024
'''<summary>
'''The bloc reading size.
'''</summary>
Public Const BufferReadSize As Integer = 1024
Private Sub btnGetPicture_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetPicture.Click
'Envoi de la requette.
Dim imageRequest As HttpWebRequest
'Lecture de la réponse
Dim serverResponse As WebResponse
Try
imageRequest = CType(WebRequest.Create(txtURL.Text), HttpWebRequest)
serverResponse = imageRequest.GetResponse()
'Vérification que le paquet HTTP est descriptif d'une image
If Not serverResponse.ContentType.StartsWith("image/") Then
MsgBox("Le fichier n'est pas une image valide!", MsgBoxStyle.Critical)
Exit Sub
End If
'Analyse du contenu du paquet HTTP
Dim responseStream As Stream = serverResponse.GetResponseStream()
'Utiliser pour stocker temporairement le contenu du paquet.
Dim buffer(BufferSize) As Byte
'Nombre d'octets lus dans la portion courante du Flux.
Dim read As Integer
'Nombre total des octets lus
Dim parsedBytes As Integer = 0
While True
'Lecture d'un nouveau bloc de taille maximale 1024 octet (BufferReadSize)
read = responseStream.Read(buffer, parsedBytes, BufferReadSize)
If read = 0 Then Exit While 'Fin du flux.
parsedBytes += read
End While
'Libération de ressources mémoire.
responseStream.Close()
'Transformation des données du buffer vers un Memory Stream
Dim pictureStream As MemoryStream = New MemoryStream(buffer)
'Transformation en Image
Dim logo As Image = Image.FromStream(pictureStream)
'Affichage de l'image.
pbxLogo.Image = logo
Catch ex As Exception
MsgBox(ex.Message)
Finally
If Not serverResponse Is Nothing Then
serverResponse.Close()
End If
End Try
End Sub
End Class
Conclusion :
C'est le mécanisme de base pour le web browser.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.