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 :

HTTPClient erreur port 443


Sujet :

Web & réseau Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut HTTPClient erreur port 443

    Bonjour,

    J'ai réalisé un bout de code qui utilise une API REST par l'intermédiaire d'un Http-client. L'utilisation de cette API nécessite auparavant une identification coté serveur (User,password,compagny). Ce code est écrit en FREE PASCAL, j'utilise l'EDI LAZARUS.
    Pour cela, je renseigne auparavant le RequestBody (avec les identifiants de connections) de l'HTTP-CLIENT, je fais POST sur l'URL de connexion et j'ai en retour, le "token" d'autorisation. Avec ce token, je peux ramener un certain nombre de données avec des GET.

    Tout cela fonctionne depuis mon PC, mais dés que je mets mon code exe sur le PC du boulot, j'ai en retour une exception :www.monurl:443 failed. J'ai placé les DLL openSSL dans le répertoire dans lequel se troubve mon exe.

    Je suppose, qu'il s'agit d'un blocage dans mon entreprise ?

    Étant débutant dans ce domaine, pouvez vous me donner une explication ? Comment puis supprimer cette exception ?

    A+

    windows 10 / DEBIAN 7.9 / Etc...

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Tu n'aurais pas le numéro de l'erreur ?
    ton API Http-client te retourne une exception ?
    Nous dire quelle est le nom de la lib nous aiderait !
    Si tu as une exception selon sa nature, on pourrait savoir si cela bloque au niveau TCP/IP (lié au firewall par exemple) ou au niveau HTTP
    Si tu n'a pas d'exception mais un simple code d'erreur, faut se référer à la documentation de ton API Http-client

    Vu ton système de token, je suppose que c'est un webservice en Bearer Authentication ?!
    J'ai intégré cela récemment en Delphi XE2 avec TIdHTTP de Indy
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut

    Bonjour,

    Je vais essayer d'être le plus clair possible.

    La lib que j'utilise est fpHttpClient (LAZARUS).

    Vu ton système de token, je suppose que c'est un webservice en Bearer Authentication ?!
    Je ne sais pas ce qu'est un Bearer Authentification.

    L'exception c'est le code qui la lève. Depuis mon PC perso (connecter en wifi sur ma LB), je n'ai pas d'erreur, c'est depuis le PC (connecter sur l'intranet de l'entreprise) du boulot que j'ai l'erreur :

    "www.xxxxx.com:443 failed"

    Si je tape dans la barre d'adresse l'url https://www.xxx.com:443, je tombe (toujours avec mon pc perso navigateur FIREFOX),sur la page d'identification de l'URL, idem depuis le PC du boulot (navigateur FIREFOX)

    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
    function TForm1.Connecter(user,password,compagny:string):string;
    var
      HttpClient: TfPHttpClient;
      Reponse: string;
      jsonData:TJsonData;
    begin
      HttpClient := TfPHttpClient.Create(nil);
      HttpClient.AddHeader('Accept','application/json');
      HttpClient.AddHeader('Content-Type ','application/json');
      HttpClient.RequestBody := TStringStream.Create('{"user": "'+user+'",'+
                                                      '"password": "'+password+'",'+
                                                      '"company": "'+compagny+'"}');
      try
        Reponse := HttpClient.Post('https://www.xxx.com/rest/v3/login');
      except
      on e:exception do
         begin
           ShowMessage('Exception :'+e.message);
           HttpClient.RequestBody.Free;
           HttpClient.free;
           exit;
         end;
       end;
       jsonData:=GETJSON(Reponse);Connecter:=TJSonObject(jsonData).FindPath('data.token').AsString;
    end;
    Merci de votre aide

    windows 10 / DEBIAN 7.9 / Etc...

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par CharleLéo Voir le message
    L'exception c'est le code qui la lève
    Tu en as bien une alors ?
    cela affiche
    'Exception : www.xxxxx.com:443 failed' ?
    ou "www.xxxxx.com:443 failed" c'est le contenu de la variable "Reponse" ?

    Si tu as bien une exception, regarde le ClassType de l'exception

    EDIT : si c'est une EHTTPClient cela n'a aucun intérêt, pas de gestion de Code Erreur comme le ferait celle d'Indy EIdHTTPProtocolException / EIdReplyRFCError
    Si tu as Lazarus au boulot, il ne te reste qu'a débuggueur le code source "fphttpclient.pas"
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut

    J'ai relancé mon code avec LAZARUS au boulot, voilà ce que j’obtiens :

    Le projet a levé une exception ESocketError avec le message : Connect to www.xxxxxxxx.com:443 failed

    Je vais essayer de comprendre, mais bon....

    A+

    windows 10 / DEBIAN 7.9 / Etc...

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    ESocketError c'est déjà plus intéressant même si la liste des erreurs est un peu courte dans la propriété Code: TSocketErrorType;
    et vu le message c'est surement l'erreur seConnectFailed !
    Malheureusement, difficile de t'aider plus !
    Reste éventuellement un Proxy défini dans FIREFOX qui ferait que la connexion passe avec lui !
    Essaye d'autre client que FIREFOX comme Telnet www.xxxxxxxx.com 443 par exemple, tu tape quelques lettres puis Entrée, tu verras si le serveur web renvoie quelque chose (au moins une erreur 400)
    Est-ce que le ping www.xxxxxxxx.com fonctionne ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut

    merci de ta réponse

    j'ai effectué des ping sur l'url : ça ne passe pas. J'ai essayé sur www.google.com : idem.

    Par contre quand je pingue le site de mon entreprise, là ça passe !!!

    Une histoire de proxy ??

    A+

    windows 10 / DEBIAN 7.9 / Etc...

Discussions similaires

  1. Erreur "port already in use :1098"
    Par ichigoo dans le forum Wildfly/JBoss
    Réponses: 7
    Dernier message: 05/01/2012, 10h27
  2. [LabVIEW 7.1] Erreur port série
    Par Meuphis dans le forum LabVIEW
    Réponses: 2
    Dernier message: 06/05/2009, 08h13
  3. [EasyPHP] erreur port 80
    Par dragonfly80 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 30/11/2008, 14h32
  4. [Apache2] redirection du port 80 vers le port 443
    Par Charly94 dans le forum Apache
    Réponses: 2
    Dernier message: 18/02/2006, 13h10
  5. [erreur] portée de variables
    Par bhdih1 dans le forum Access
    Réponses: 11
    Dernier message: 12/11/2005, 18h20

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