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

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Points : 78
    Points
    78
    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 675
    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 675
    Points : 5 263
    Points
    5 263
    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 régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Points : 78
    Points
    78
    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 675
    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 675
    Points : 5 263
    Points
    5 263
    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 675
    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 675
    Points : 5 263
    Points
    5 263
    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 régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Points : 78
    Points
    78
    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 675
    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 675
    Points : 5 263
    Points
    5 263
    Par défaut
    Cela ressemble à un problème de sécurité bien connu.
    Tu utilises probablement une version obsolète de TLS.

    Ceci devrait t'aider :
    https://www.developpez.net/forums/d1.../#post10372117

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Désolé pour ne répondre que maintenant. Des problèmes m'ont tenue un peu à l’écart.

    Je n'ai jamais fait ce genre de chose et je ne vois comment faire pour faire cibler la version 4.5 du net framework.

  9. #9
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 675
    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 675
    Points : 5 263
    Points
    5 263
    Par défaut
    Clic droit sur ton projet, puis "Propriétés".
    Dans le volet "Application" (le premier), il y a la version cible.

    Si .Net Framework 4.5 (ou supérieur) n'apparait pas, il faut quitter complètement Visual Studio, télécharger et installer le package développeur.
    La version 4.5 n'étant plus maintenue, autant passer directement en 4.8.
    https://dotnet.microsoft.com/en-us/d...ramework/net48

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 128
    Points : 1 638
    Points
    1 638
    Par défaut
    dans VS2022, il propose, il me semble de télécharger d'autres versions du Framework.

    Et encore faut-il que le projet soit en .NET Framework et pas en .NET5/6/7; auquel cas, il faut créer un nouveau projet d'application avec la mention Framework si on veut utiliser le .NET Framework)

  11. #11
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 675
    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 675
    Points : 5 263
    Points
    5 263
    Par défaut
    Si le projet était en .Net 5 ou supérieur, il n'aurait pas ce problème.

  12. #12
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Le problème a déjà été traité ici :
    https://www.developpez.net/forums/bl...urise-ssl-tls/
    Un autre lien utile ici :
    https://stackoverflow.com/questions/37869135/is-that-possible-to-send-httpwebrequest-using-tls1-2-on-net-4-0-framework

    Bon codage 😉

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par popo Voir le message
    Clic droit sur ton projet, puis "Propriétés".
    Dans le volet "Application" (le premier), il y a la version cible.

    Si .Net Framework 4.5 (ou supérieur) n'apparait pas, il faut quitter complètement Visual Studio, télécharger et installer le package développeur.
    La version 4.5 n'étant plus maintenue, autant passer directement en 4.8.
    https://dotnet.microsoft.com/en-us/d...ramework/net48
    Quand je vais dans le volet "Application", je n'ai pas de "version cible" ou autre qui me permette de voir quelle version du Framework.
    Je suis sous Visual Studio 2010.

    Quand je créer une nouvelle application, le max que je peux prendre est la version 4.0 du Frameworks.

    Peut -être je devrais passer sur VS 2022 ?

  14. #14
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 675
    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 675
    Points : 5 263
    Points
    5 263
    Par défaut
    Si je ne dis pas de bêtises, Visual Studio 2010 peut aller jusqu'à la version 4.6 du Framework mais pas au delà.
    Quoi qu'il en soit, il faudra quand même l'installer.

    Si tu en as la possibilité, il serait effectivement judicieux d'installer la version 2022.
    Ainsi :
    • Tu bénéficiera des améliorations en termes de performances et de sécurité
    • Tu pourras utiliser la dernière version de .Net Framework (la 4.8 donc) ou passer sur .Net CORE.

  15. #15
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    J'ai mis la version 2022 proposé par Microsoft.

    Le mieux serait de partir sur le .Net Core 3.1 ?

    Nom : image.png
Affichages : 46
Taille : 15,7 Ko

  16. #16
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 675
    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 675
    Points : 5 263
    Points
    5 263
    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