IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Lecture données site internet


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut Lecture données site internet
    Bonjour.



    Je viens vers vous pour un petit problème.

    Il me faut récupérer les données d'une page web. C'est une page blanche, avec juste quelques mots (un mot par ligne).



    J'avais un bout de code me permettant de réaliser le travail, mais depuis le changement de HTTP à HTTPS, ça ne marche plus. Et je ne trouve pas de solution pour récupérer dans mon programme les données.



    Quelqu'un a déjà fait cela ?

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Nous n'avons pas encore la faculté de deviner le code que vous avez écrit.
    Mais la technologie progresse...

    En attendant, merci de poster le code qui ne fonctionne plus.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Voici le code que j'utilisais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Imports System.IO
    Imports System.Net
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim webRequest As WebRequest
            Dim webResponse As WebResponse
            Dim pageHtml As String
     
            webRequest = HttpWebRequest.Create("Adresse de la page du site")
            webResponse = webRequest.GetResponse()
     
            Using stream As StreamReader = New StreamReader(webResponse.GetResponseStream())
                pageHtml = stream.ReadToEnd()
                MsgBox(pageHtml)
            End Using
    end sub

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    A première vue, ce code à l'air correct.
    Tu obtiens un message d'erreur ?

    Edit :
    Même si ce n'est probablement pas pour cela que ça ne fonctionne pas, l'objet que tu utilises est déprécié.

    Microsoft recommande celui-là à la place :
    https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=net-7.0

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Je viens de faire le test.
    Ta méthode et celle que je t'ai suggéré fonctionnent toutes les deux et renvoient rigoureusement le même résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Module Module1
     
        Const Uri As String = "https://www.json.org/json-fr.html"
     
        Sub Main()
            Dim code1 As String = ExecuteWithHttpWebRequest()
            Dim code2 As String = ExecuteWithHttpClient()
     
            Dim result As String = If(code1.Equals(code2), "OK", "KO")
     
            Console.WriteLine(result)
            Console.ReadKey()
        End Sub
     
        Function ExecuteWithHttpWebRequest() As String
            Dim webRequest As WebRequest
            Dim webResponse As WebResponse
            Dim pageHtml As String
     
            webRequest = HttpWebRequest.Create(Uri)
            webResponse = webRequest.GetResponse()
     
            Using stream As StreamReader = New StreamReader(webResponse.GetResponseStream())
                pageHtml = stream.ReadToEnd()
     
                Return pageHtml
            End Using
        End Function
     
        Function ExecuteWithHttpClient() As String
            Using client As HttpClient = New HttpClient()
                Return client.GetStringAsync(Uri).Result
            End Using
        End Function
    End Module
    Résultat : OK.

    Edit :
    A vérifier en priorité.
    Est-ce que ton URL fonctionne si tu l'appelle depuis un navigateur ?
    Est-ce que tu obtiens un statut différent de 200 ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Bonjour.

    Avec ma méthode, j'ai une erreur sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    webResponse = webRequest.GetResponse()
    "La demande a été abandonnée : Impossible de créer un canal sécurisé SSL/TLS."

    La page que je charge fonctionne bien quand je saisie l'adresse sur mon navigateur.

    J'ai essayé en changeant l'adresse de ma page par la tienne : "https://www.json.org/json-fr.html" et j'obtiens la même erreur. Je vais maintenant essayer avec ta méthode pour voir, mais j'ai une erreur sur "httpClient" qui est de type inconnu

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Le mieux serait d'utiliser .Net 7.0

Discussions similaires

  1. Données sur site internet après authentification
    Par Pierre845 dans le forum MATLAB
    Réponses: 4
    Dernier message: 07/11/2011, 08h15
  2. Réponses: 4
    Dernier message: 29/09/2009, 16h00
  3. Base de données Access sur un site internet
    Par Flo0§ dans le forum Modélisation
    Réponses: 4
    Dernier message: 27/03/2008, 14h49
  4. Excel et données sur site internet
    Par jevany dans le forum Excel
    Réponses: 3
    Dernier message: 16/03/2007, 22h46
  5. connexion a une base de donnée distante mysql(site internet)
    Par rollernox dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/07/2004, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo