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

Langage Delphi Discussion :

Indy TIDHTTP Erreur


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Par défaut Indy TIDHTTP Erreur
    Bonjour à tous.
    Je suis un peu en galère depuis quelques temps, sur un problème de "Connection Closed Gracefully".
    Je travaille sur un programme permettant de communiquer avec un serveur.
    J'ai fais plusieurs essais, mais j'ai toujours ce beau message 'Connection Closed Gracefully' qui me stoppe mon programme.
    J'ai beau chercher sur des forums ou autre, j'ai souvent du mal à comprendre.
    Je vous transmets une partie de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        zIdHttp := TIdHttp.Create(nil);
        with zIdHttp do
        begin
          Name := 'IdHTTP';
          AllowCookies := True;
          HandleRedirects := True;
          HTTPOptions := [hoForceEncodeParams];
          Request.Username := psUserName;
          Request.Password := psPassword;
          Request.Accept := '*/*';
          Request.ContentType := 'application/x-www-form-urlencoded'; 
          Request.Connection := 'Keep-Alive';
        end;
    Par la suite, je remplis une TStringList contenant des paramètres, puis je finis par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Result := UpperCase(Trim(zIdHttp.Post(psHTTPLink, zParams)));
    C'est à ce moment là que j'ai la fameuse erreur et que mon programme se coupe.

    Par contre, j'arrive à communiquer avec le serveur car dans le log, il y a bien des ligne, mais à priori, il ne reçoit rien de ce que je lui poste.

    J'espère que quelqu'un pourra m'éclairer sur ce que j'ai fais de mal !

    Merci !
    Manon

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Passe ton logiciel en mode Release et plus en debug cela devrait corriger le problème.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 086
    Par défaut
    Voir Connection Closed Gracefully

    En général, tu n'as que la notification d'exception par le déboggueur, normalement c'est une exception silencieuse
    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

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Par défaut
    J'ai essayé votre suggestion. Ca ne résout pas mon problème.
    De plus, j'avais déjà essayé de l'exécuter en dehors de Delphi, ça ne marchait pas plus. Mon log m'indique toujours "Connection closed Gracefully".

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 086
    Par défaut
    As-tu lu mon lien Connection Closed Gracefully ?
    As-tu fais un effort de recherche : Comment éviter les exceptions "Connection Closed Gracefully." avec IdTCPServer ?

    As-tu même essayé de comprendre la signification de "Connection Closed Gracefully." qui veut juste dire "Connexion fermée avec succès"
    Oui c'est délirant d'avoir une exception pour cela, une raison obscure d'un contributeur au projet Indy

    As-tu cherché autour de la classe EIdConnClosedGracefully ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ...
      try
        with zIdHttp  do
        begin
          ...
        end;
     
       Result := UpperCase(Trim(zIdHttp.Post(psHTTPLink, zParams)));
     
      except
        on ESuccess : EIdConnClosedGracefully do
          {none}
      end;
    ...
    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

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Par défaut
    J'ai eu votre lien plusieurs fois, et l'effort de recherche ça fait plus de 3 jours que je suis dessus. Seulement je viens demander votre aide car je commence un peu à désespérer.
    J'ai ajouté l'exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    except
            on ESuccess: EIdConnClosedGracefully do
     
          end;
    Il passe bien dedans, mais cela ne change rien au fait que la communication n'a pas l'air de s'effectuer. J'utilise la fonction POST d'Indy, je transfère de bons paramètres sur une bonne adresse et pourtant... Je n'ai aucun retour, et je n'arrive pas à comprendre d'où ça vient.

  7. #7
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 086
    Par défaut
    Cela semble logique puisque Result n'est jamais affecté !

    As-tu changé les paramètres, l'option "Keep-Alive" n'est peut-être pas supporté, elle est conçu pour simuler une connexion permanente ! est-ce ton cas ?

    For HTTP/1.1 applications, Connection may contain the value "close" to indicate that the connection will be closed after completion of the response. HTTP/1.1 applications that do not support persistent connections must include the "close" connection option in every message.
    Essaye un code plus simple comme celui de la FAQ Comment valider un formulaire ne contenant que des données textuelles avec la méthode POST ?

    t

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        zIdHttp := TIdHttp.Create(nil);
        with zIdHttp do
        begin
          Request.Username := psUserName;
          Request.Password := psPassword;
          Request.ContentType := 'application/x-www-form-urlencoded'; 
          Result := UpperCase(Trim(Post(psHTTPLink, zParams)));
        end;
    Que contient zParams ? Je suppose une TStrings avec tes paramètres ?
    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

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

Discussions similaires

  1. Indy - IdHTTP Erreur socket 10061
    Par Fxg dans le forum Web & réseau
    Réponses: 4
    Dernier message: 25/09/2012, 15h49
  2. Transfert de fichier Client vers Serveur via INDY erreur ?
    Par bzh56 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 20/03/2006, 10h34
  3. Delphi 2005 Indy 9 Erreur au lancement du programme
    Par Houben Jacques dans le forum Web & réseau
    Réponses: 4
    Dernier message: 08/11/2005, 12h05
  4. Traitement erreur IdSocketError Composant Indy
    Par goldkey dans le forum Composants VCL
    Réponses: 1
    Dernier message: 05/06/2005, 12h11
  5. Erreur de socket avec le composant Indy idHTTP
    Par Etanne dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/10/2004, 11h27

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