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

Web & réseau Delphi Discussion :

[Rio] [Android9] Impossible de charger la bibliotheque SSL


Sujet :

Web & réseau Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    octobre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2006
    Messages : 83
    Points : 94
    Points
    94
    Par défaut [Rio] [Android9] Impossible de charger la bibliotheque SSL
    Bonjour,

    Je suis sous Rio avec un projet FMX pour Android.
    L'idée est de récupérer une image d'un serveur.
    Le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ResponseContent := TMemoryStream.Create;
    url := 'https://www.MonNomDeDomaine.com/Images/Test.png';
    IdHTTP1.Get(url, ResponseContent);
    ResponseContent.Position := 0;
    ImageAccueil.Bitmap.LoadFromStream(ResponseContent);
    Image1.Bitmap.LoadFromStream(ResponseContent);
    ResponseContent.Free;
    Si je mets http, ça fonctionne, si je passe en https, j'ai "Impossible de charger la bibliotheque SSL"
    La doc d'Embarcadero (http://docwiki.embarcadero.com/RADStudio/Rio/fr/OpenSSL) indique que je n'ai aucune action particulière à faire, car les fichiers nécessaires à l'établissement d'une connexion https sont déjà dans l'OS.

    Sauriez-vous m'indiquer ce qui ne va pas ?

    Cordialement

    Carmichael

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    mai 2005
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2005
    Messages : 378
    Points : 586
    Points
    586
    Par défaut
    c'est un problème avec indy il me semble, utilise plutôt HttpClient

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 017
    Points : 25 966
    Points
    25 966
    Par défaut
    plus exactement c'est un problème avec le fait que depuis Android 6 je crois, OpenSSL n'est plus installé, ils sont passé sur BoringSSL qui n'est pas supporté par Indy
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre éprouvé
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2003
    Messages
    916
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : novembre 2003
    Messages : 916
    Points : 1 138
    Points
    1 138
    Billets dans le blog
    3
    Par défaut
    Je tombe sur le même problème. Y a t'il eu une évolution depuis ou y a t'il d'autres composants disponibles?
    Il y a des jours où j'éprouve une haine profonde envers microsoft
    Venez vous défouler ici ou c'est amusant
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 017
    Points : 25 966
    Points
    25 966
    Par défaut
    pas à ma connaissance, mais tu peux utiliser System.Net.HTTPClient, sous Android cela encapsule la classe Java du système.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre éprouvé
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2003
    Messages
    916
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : novembre 2003
    Messages : 916
    Points : 1 138
    Points
    1 138
    Billets dans le blog
    3
    Par défaut
    Effectivement ça fonctionne
    En m'appuyant sur cette documentation (http://docwiki.embarcadero.com/RADSt...un_client_HTTP)
    J'ai pu faire ce test qui fonctionne sous windows et android. Ce qui donnera déjà une première base pour débuter.

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    unit gestion;
     
    interface
     
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Layouts, FMX.Edit,
      FMX.Controls.Presentation, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, System.Net.URLClient,
      System.Net.HttpClient, System.Net.HttpClientComponent;
     
    const
      urlsite: String = 'https://www.monsite.fr/monscript.php';
     
    type
      TForm1 = class(TForm)
        stadem: TStyleBook;
        PanID: TPanel;
        Label1: TLabel;
        edMail: TEdit;
        Layout1: TLayout;
        Layout2: TLayout;
        Label2: TLabel;
        edMdP: TEdit;
        btnConnexion: TButton;
        PanCompet: TPanel;
        Label3: TLabel;
        httpadem: TNetHTTPClient;
        reqadem: TNetHTTPRequest;
        procedure btnConnexionClick(Sender: TObject);
        procedure reqademRequestCompleted(const Sender: TObject; const AResponse: IHTTPResponse);
     
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.fmx}
    {$R *.LgXhdpiPh.fmx ANDROID}
    {$R *.NmXhdpiPh.fmx ANDROID}
    {$R *.SmXhdpiPh.fmx ANDROID}
     
    procedure TForm1.btnConnexionClick(Sender: TObject);
    var
      params: TStringList;
    begin
     
      params := TStringList.Create;
      params.Add('email=' + edMail.Text);
      params.Add('mdp=' + edMdP.Text);
      reqadem.Post(urlsite,params);  
    end;
     
     
    procedure TForm1.reqademRequestCompleted(const Sender: TObject; const AResponse: IHTTPResponse);
    var
     ret:string;
    begin
     ret:=AResponse.ContentAsString();
     if pos('ok',ret)>0 then
      begin
        PanID.Visible := false;
        PanCompet.Visible := true;
      end;
     
    end;
     
    end.
    Il y a des jours où j'éprouve une haine profonde envers microsoft
    Venez vous défouler ici ou c'est amusant
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  7. #7
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 017
    Points : 25 966
    Points
    25 966
    Par défaut
    pour des besoins plus spécifiques je recommande de créer une classe (ou au minimum une fonction wget par exemple) qui sera blindée de $IFDEF MSWINDOWS, $IFDEF ... pour gérer tous les cas de figure.

    cela permet d'éviter de rechercher dans ton projet tous les endroits où tu utilises Indy ou THTTPClient...tu n'as à corriger que l'unité spécifique.

    J'ai notamment fait cela pour un client HTTPS qui devait utiliser une certificat client auto-signé, j'ai du reprendre l'implémentation sous Android qui refusait le certificat...et sous Windows j'utilise SChannel ou lieu de OpenSSL
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #8
    Membre habitué
    Homme Profil pro
    conseil et développeur en informatique industrielle
    Inscrit en
    janvier 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : conseil et développeur en informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2006
    Messages : 206
    Points : 162
    Points
    162
    Par défaut
    Bonjour a tous,
    J'ai une appli XE5 sous Windows 7 32b qui envoi des mails.
    en passant sous Windows 10 64 bits j'ai cette exception :
    ConnectMail>Exception [Could not load SSL library.]

    J'ai tenté d'installer openssl trouvé en 64 bits sur : http://slproweb.com/products/Win32OpenSSL.html
    mais cela ne fonctionne toujours pas
    Comment ressoudre ce problème

    j'ai lu les différents post de cette rubrique mais cela ne semble pas correspondre a mon problème

    merci d'avance

  9. #9
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 017
    Points : 25 966
    Points
    25 966
    Par défaut
    ton appli est 32bits, peu importe si Windows est en 64bits, il te faut des DLL 32bits

    par ailleurs si tu utilises Indy, il n'est pas compatible avec la dernière versions de OpenSSL, il faut une version 1.0.2
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  10. #10
    Membre habitué
    Homme Profil pro
    conseil et développeur en informatique industrielle
    Inscrit en
    janvier 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : conseil et développeur en informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2006
    Messages : 206
    Points : 162
    Points
    162
    Par défaut
    J'utilise les composants Delphi
    IdSmtp,
    idMessage
    idSslIioHhandler

    C'est compilé en 32 bits sous un OS Windows 10 - 64bits
    puisque la machine est configurée en 64, une compile en 64 bits pourrait résoudre le problème ?
    je suis actuellement sous Sydney

    Je pensais que le composant IdSsl stabiliserait le problème mais il se révèle encore en passant a Windows 10.

    connaissez vous une ou des solutions plus pérennes pour envoyer des mails ???

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/06/2016, 11h58
  2. Impossible de charger LIBMYSQL.DLL
    Par Dalès dans le forum Bases de données
    Réponses: 19
    Dernier message: 20/09/2006, 04h57
  3. Réponses: 19
    Dernier message: 09/09/2005, 16h44
  4. Impossible de charger un mesh...
    Par wikers dans le forum DirectX
    Réponses: 2
    Dernier message: 09/12/2004, 19h33
  5. [SERVLET][JDBC] Impossible de charger les pilotes
    Par cedric.picard dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/10/2004, 14h11

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