Requètes http via proxy : recuperer la source html d'une page web

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 144 fois - Téléchargée 42 fois


Contenu du snippet

Un petit code permettant de recuperer ce que renvoie une requete web, et donc de filtrer par exemple le contenu des urls qui semblent dangereuse, ou encore d'y recuperer toutes les urls contenues (esquisse d'un aspirateur web)... ceci en passant si besoin il y a par un proxy.

Ce code n'est qu'un tout petit exemple basique, et les objets webrequests comportent enormement d'autres utilités (entre autres les modifications des headers sur lesquels je reviendrais surement dans une prochaine source)

Source / Exemple :


Function Get_request(ByVal url As String, Optional ByVal proxy As String = Nothing, Optional ByVal proxyport As Integer = Nothing) As String
        Dim readstr As IO.StreamReader 'on crée un objet streamreader
        Try

            If proxy <> Nothing And proxyport <> Nothing Then 'on execute ceci que si les deux arguments optionels ont été passés (proxy et port)
                Dim hproxy As WebProxy 'on crée l'objet proxy
                hproxy = New WebProxy(proxy, proxyport) 'on defini hproxy avec les valeurs données
                GlobalProxySelection.Select = hproxy 'on applique le proxy
            End If

            Dim hwebrequest As System.Net.WebRequest = System.Net.WebRequest.Create(url) 'on crée la requete web
            Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse 'on crée un objet de reponse a notre requete
            readstr = New IO.StreamReader(hwebresponse.GetResponseStream) 'on redefini notre streamreader avec la reponse à la requete en argument
            Return readstr.ReadToEnd() 'on renvoie l'ensemble du resultat
            readstr.Close() 'on ferme l'objet

        Catch ex As Exception

            Return ex.Message.ToString ' en cas d'erreur, on renvoie la description de l'erreur
            readstr.Close()

        End Try

    End Function

'en admettant que les textbox existent sur votre form (je vous laisse recupérer vous meme les noms), dans un bouton ou autre :
'htmltxt est un richtextbox, pour eviter une erreur si le fichier distant est trop gros

 If proxytxt.Text <> "" And porttxt.Text <> "" And urltxt.Text <> "" Then htmltxt.Text = Getrequest(urltxt.Text, proxytxt.Text, porttxt.Text)
        If urltxt.Text <> "" Then htmltxt.Text = Getrequest(urltxt.Text)

Conclusion :


C'est tres simple, c'est pratique dans certains cas et ca pourra servir de base à un essai sur les requetes web... j'y reviendrais surement :)

Les commentaires sont les bienvenus.

A voir également

Ajouter un commentaire

Commentaires

cs_marm0tte
Messages postés
203
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
18 janvier 2009
-
C'est cool, j'aime bien ton code et je l'ai compris, je viend de passé vb6 --> .NET
C'est pas si different a ce que je vois :)
cs_chris81
Messages postés
589
Date d'inscription
jeudi 2 octobre 2003
Statut
Membre
Dernière intervention
29 avril 2008
1 -
sympa ton code sauf que tu geres pas le passage de mot de passe et de login. c' est une chose tres importante a ce niveau!!!
cs_liink
Messages postés
1
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
13 septembre 2004
-
D'ailleurs, si quelque sait comment gerer l'authentification, je suis preneur
Mindiell
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1 -
C'est excatement ce que je voulais : recuperer un fichier sur le net :o)

Merchi ^^
cs_yoda
Messages postés
19
Date d'inscription
mardi 29 janvier 2002
Statut
Membre
Dernière intervention
21 juillet 2005
-
Juste une petite question, j'aimerai faire passer des paramètres à une url qui pointe vers une page asp depuis vb.net. J'essaye d'adapter le code proposé dans cette source mais je n'y arrive pas. Pouvez-vous m'aider où y a t-il une source que parle de ça
Merci d'avance

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.