begin process at 2008 08 29 01:32:03
1 233 477 membres
19 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RÉCUPÉRER UNE PAGE WEB À TRAVERS UNE PAGE ASP.NET


Information sur la source

Catégorie :Réseau & Internet Source .NET ( DotNet ) Niveau : Initié Date de création : 16/04/2002 Date de mise à jour : 17/04/2002 00:12:59 Vu : 14 164

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note


Description

Cette fonction vous permet de récupérer une page HTML au travers d'une page ASP.Net
Cela ne m'a pas pris énormément de temps et vous avourez que c'est vraiment "simple" d'ouvrir des sockets désormais grâce à .Net (voir le code ci-dessous)

Source

  • Imports System.Net.Sockets
  • Imports System.IO
  • Public Function RecupHTTP(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 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()
  • WebClient.Close()
  • ' On renvoi ce que l'on a récupéré
  • RecupHTTP = Resultat
  • End Function
Imports System.Net.Sockets
Imports System.IO

Public Function RecupHTTP(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 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()
  WebClient.Close()

  ' On renvoi ce que l'on a récupéré
  RecupHTTP = Resultat
End Function
    

Conclusion

Exemple d'utilisation de cette fonction :
mettez ce code dans votre page .aspx
<%=RecupHTTP("http://www.google.fr/")%>
  • signaler à un administrateur
    Commentaire de vbtom le 17/04/2002 02:11:16

    t1 c trop bien l'asp.net!!!
    Jmy met!!!!!!

  • signaler à un administrateur
    Commentaire de Big Jim le 26/04/2002 21:00:13

    Le decoupage de l'URL peut même être simplifié à l'aide de la classe System.Uri...

  • signaler à un administrateur
    Commentaire de Nix le 27/04/2002 03:01:11 administrateur CS

    C'est vrai, mais j'ai pas encore fait le tour de .Net ;)
    Mais promis, je mettrai une version plus simple quand j'aurais regardé cela

    A++

    Nix

  • signaler à un administrateur
    Commentaire de MikeN le 12/12/2002 11:18:54

    Hello
    Je suis tout nouveau ds ASP.Net
    J'ai installé tt ce ki faut (la short version distrib_quelquechose.exe 20Mo)

    Et j'ai copié la fonction ci dessus, et son appel et voici le msg d'erreur :
    Message d'erreur du compilateur: BC30035: Erreur de syntaxe.

    Erreur source:



    Ligne 1 :  <%=RecupHTTP("http://www.paperjam.lu/whoswho/details.html?id=50")%>
    Ligne 2 :  <%
    Ligne 3 :  Imports System.Net.Sockets
    Ligne 4 :  Imports System.IO
    Ligne 5 :  


    Fichier source: D:1_M_I_K_AASP_net est.aspx    Ligne: 3



    HELP please

  • signaler à un administrateur
    Commentaire de Kasiorn le 29/05/2003 17:13:11

    quelqu'un connaitrait il une solution ou un lien vers un équivalent en ASP tout court ?
    merci d'avance

  • signaler à un administrateur
    Commentaire de chnickel le 05/06/2003 13:05:15

    Il y un OCX gratuit et simple d'emploi dans la categorie reseaux & internet. Si tu trouve pas, je te l'envoi...

  • signaler à un administrateur
    Commentaire de Kasiorn le 05/06/2003 16:14:51

    merci beaucoup ;)
    et sinon je voudrais l'utiliser dans une application professionnelle que je développe, question portabilité et simplicité j'aimerais me passer d'avoir à installer un composant et trouver une méthoque ASP pure, est ce que c'est possible ?

  • signaler à un administrateur
    Commentaire de Dino le 08/07/2003 13:38:12

    Kasiorn, a tu trouvé  le moyen de faire la même chose en ASP ? Merci

  • signaler à un administrateur
    Commentaire de Kasiorn le 08/07/2003 17:43:38

    pas encore, mais je n'ai pas continué à chercher. En atttendant mieux, j'utilise le composant OCX dont parle chnickel plus haut

  • signaler à un administrateur
    Commentaire de Dino le 08/07/2003 19:20:52

    Le problème, c'est que je ne suis pas propriétaire du serveur ... je ne peux donc pas y mettre cet OCX (enfin, si j'ai bien compris). Bon, tampis ... si tu a des nouvelles, previent moi STP ...  
    @+

  • signaler à un administrateur
    Commentaire de epetegnief le 18/01/2006 11:50:24

    Genial ton code mais mon pb quand j'ai des caracteres du genre :

    é il ne me récupère pas le é ni le é mais me met un ? à la place as-tu une astuce pour palier à ce pb

    encore merci pour le code

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Boutique

Boutique de goodies CodeS-SourceS