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 :

Télécharger une image depuis une adresse en https


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : Mars 2011
    Messages : 109
    Par défaut Télécharger une image depuis une adresse en https
    Bonjour,

    Dans mon programme je télécharge de petites imagettes sur divers serveurs.
    Je procède comme ça:

    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
    36
    37
    38
    39
    40
    41
     
    private sub envoi_requete
     
        .......
     
             If InfosImages.Contains(url) = False Then
     
                    Try
                      Dim uri As New Uri(url)
                      Dim clientListe As New WebClient
                      AddHandler clientListe2.DownloadDataCompleted, AddressOf clientListe_DownloadDataCompleted
                      clientListe.DownloadDataAsync(uri, n.ToString & "   " & indice.ToString & "   " & url)
                      Catch ex As Exception
     
                      End Try
             End If
     
        .......
    end sub
     
        Private Sub clientListe_DownloadDataCompleted(ByVal sender As Object, ByVal e As System.Net.DownloadDataCompletedEventArgs)
            Try
                Dim r() As String = Split(e.UserState, "   ") 'r(0) position de l'image, r(1) indice dans AffEmmMarq, r(2) nom de l'image = url d'appel
     
                ListImages.Add(New MemoryStream(e.Result))     'ajouter l'image
                InfosImages.Add(r(2))                'ajouter le nom de l'image
                If ListImages.Count > 300 Then
                    ListImages.RemoveAt(0)
                    InfosImages.RemoveAt(0)
                End If
                Dim posIm As Integer = Val(r(0))
                Dim indice As Integer = Val(r(1))
     
               .....
     
            Catch ex As Exception
                affiche_log(ex.Message, False, 0)
                affiche_log("innerexception: " & e.Error.ToString, False, 0)
            End Try
     
        End Sub
    La première routine adresse une demande au serveur et lorsque la réponse arrive la deuxième routine stocke l'image dans une liste.
    Tout ça fonctionne très bien lorsque l'URL est en "http" mais foire avec une url en "https".
    La routine affiche_log m'affiche le message d'erreur "La demande a été abandonnée*: Impossible de créer un canal sécurisé SSL/TLS"

    Je cherche donc des infos pour établir ce canal sécurisé...

  2. #2
    Membre Expert
    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
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    La solution est ici (code c# à convertir en vbnet) :
    https://www.developpez.net/forums/d1.../#post10372117

    Bon codage.

    ++

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : Mars 2011
    Messages : 109
    Par défaut
    Merci, ça fonctionne.
    J'avais déjà vue et essayée cette procédure sur des exemples trouvés en cherchant ici ou là, mais ça n'avait pas fonctionné.
    La cause était dans ton PS : "Il faut que ton projet cible la version 4.5 du framework"
    J'utilisais toujours VB2010 express qui ne permet que le framework 4.0. (SecurityProtocolType.Tls uniquement)

    Je suis obligé de me rabattre sur VS 2017 community que je n'aime pas.

    Code qui fonctionne:
    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
     
    private sub envoi_requete
     
        .......
     
             If InfosImages.Contains(url) = False Then
     
                    Try
                      Dim uri As New Uri(url)
                      ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
                      Dim clientListe As New WebClient
                      AddHandler clientListe.DownloadDataCompleted, AddressOf clientListe_DownloadDataCompleted
                      clientListe.DownloadDataAsync(uri, n.ToString & "   " & indice.ToString & "   " & url)
                    Catch ex As Exception
     
                    End Try
             End If
     
        .......
    end sub
    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/01/2010, 11h36
  2. Insérer une image via une adresse http
    Par lenoil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/09/2008, 15h43
  3. [HTTP C++] Comment télécharger une image?
    Par ValyGator dans le forum Windows
    Réponses: 10
    Dernier message: 29/02/2008, 11h35
  4. Télécharger un fichier Zip depuis une adresse internet
    Par jmjmjm dans le forum Web & réseau
    Réponses: 8
    Dernier message: 18/10/2005, 19h12

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