begin process at 2012 02 17 02:29:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > REQUÈTES HTTP VIA PROXY : RECUPERER LA SOURCE HTML D'UNE PAGE WEB

REQUÈTES HTTP VIA PROXY : RECUPERER LA SOURCE HTML D'UNE PAGE WEB


 Information sur la source

Note :
8,67 / 10 - par 3 personnes
8,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Source .NET ( DotNet ) Niveau :Débutant Date de création :06/02/2003 Date de mise à jour :06/02/2003 22:53:16 Vu :11 516

Auteur : hvb

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note


 Description

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

  • 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)
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.


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) FOND DE FEUILLE ANIMÉ : DÉGRADÉ MOUVANT POUR ABOUT OU SPLASH...
Source avec Zip Source avec une capture Source .NET (Dotnet) FONT VIEWER : VISIONNEUSE DE POLICES SYSTEMES.
Source avec Zip Source avec une capture Source .NET (Dotnet) HBSNAPSHOTERV3.0 : GESTIONNAIRE DE CAPTURES D'ÉCRAN
Source avec Zip Source avec une capture Source .NET (Dotnet) JEU : PICROSS OU "PUZZLE JAPONAIS"
Source avec Zip Source .NET (Dotnet) [.NET2] COMPRESSION/DÉCOMPRESSION GZIP DE FICHIER GRÂCE À IO...

 Sources de la même categorie

Source avec Zip Source avec une capture GESTIONNAIRE DE TÉLÉCHARGEMENT, AVEC REPRISE ET MULTITHREADI... par Madx23
Source avec Zip Source avec une capture CONVERTIR DU TEXTE RTF EN CODE HTML ET VICE-VERSA par vicosta
Source avec Zip Source avec une capture DICTIONAIRE TEXT/AUDIO/VISUELLE ANGLAIS AVEC WEBBROWSER CONT... par majnounmajda
Source avec Zip Source .NET (Dotnet) NSLOOKUP EN VB.NET OU COMMENT FAIRE UNE REQÛETE DNS EN PRÉCI... par ShareVB
Source avec Zip Source avec une capture MINI SEVEUR HTTP AVEC INTERFACE GRAPHIQUE ET IMPLÉMENTATIONS... par lemout

Commentaires et avis

Commentaire de marm0tte le 19/02/2004 18:42:34

C'est cool, j'aime bien ton code et je l'ai compris, je viend de passé vb6 --&gt; .NET
C'est pas si different a ce que je vois :)

Commentaire de chris81 le 02/06/2004 15:59:32

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!!!

Commentaire de liink le 13/09/2004 18:25:23

D'ailleurs,  si quelque sait comment gerer l'authentification, je suis preneur

Commentaire de Mindiell le 05/10/2004 17:21:35

C'est excatement ce que je voulais : recuperer un fichier sur le net :o)

Merchi ^^

Commentaire de yoda le 11/02/2005 15:32:28

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

Commentaire de hvb le 14/02/2005 12:23:11

Logiquement cela devrait marcher, peut tu me donner plus d'info sur ce que tu essaye de faire? (si j'ai bien compris, c'est seulement passer des arguments a une url....type www.aaa.fr/bbb.asp?var=val . c'est ça?

Commentaire de chris81 le 14/02/2005 17:48:09

va voir ma source
http://www.vbfrance.com/code.aspx?id=28617
et
http://www.vbfrance.com/code.aspx?id=23538
a+

Commentaire de Data2004 le 15/01/2006 22:04:53

Source simple à comprendre (même pour moi :p).
Par contre, une question : Comment gérer les headers, les variables et les cookies ?
Cela doit être quand même beaucoup plus compliqué qu'avec un socket, non ?

Commentaire de hvb le 17/01/2006 11:20:53

Il y a une propriété Headers pour les System.Net.WebRequest

Tu peux les modifier en fesant           hwebrequest.Headers.Item("Le-Nom-Du-Header") = La Valeur"
ou en ajouter en fesant :
hwebrequest.Headers.Add("Test", "hop")


Pour finir, tu peux utiliser aussi les System.Net.HttpWebRequest qui te permettront d'editer les headers en tant que proprietés de l'objet directement... ex :
hwebrequest.UserAgent = "Hb BrowZer"

Commentaire de porgy le 15/04/2007 14:57:44

Bonjour ton code m'intéresse mais il utilise une url, or je souhaiterais stocker le contenu html de ma page une fois qu'elle a été générée. En fait j'utilise une sorte de signature électronique et je souhaiterais enregistrer dans ma base, le code HTML de ce qui a été signé en vue de pouvoir le relire avec un explorer web en cas de probleme.

Si tu as une idée je suis preneur.

Merci

Patrice

Commentaire de soldier8514 le 22/06/2008 14:41:31 8/10

Dim hproxy As WebProxy

Où on défini WebProxy ???

Commentaire de soldier8514 le 22/06/2008 14:49:56

oki , jai trouvé : webproxy est implémenté par le biais de

Imports System.Net

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales