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 :

TWebResponse renvoi d'un TStringList à une page php


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur DELPHI
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Par défaut TWebResponse renvoi d'un TStringList à une page php
    Bonjour,

    J'ai réalisé un web Service qui va interroger une application Delphi via le protocole TCP qui retourne une variable de type TStringList. Actuellement je renvoi une une page HTML via propriété ‘content’ du l’objet response.
    Mais je voudrais renvoyer directement ma variable de type TStringList à une page php, est-ce possible ? Si oui comment ?
    Voici actuellement ma procédure :
    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
    sResponse := TStringList.Create;
      IdTCPClient1.IoHandler.Capture(sResponse);
      if sResponse[3] = '3' then
      begin
          Response.Content:=
               '<HTML>'
             + '  <BODY>'
             + '    <H1>Impossible de calculer la route</H1><BR>'
             + '  </BODY>'
             + '</HTML>'
             ;
      end
      else
      begin
        Response.Content:=
               '<HTML>'
             + '  <BODY>'
             + '    <H1>- Distance :'+sResponse[0]+'</H1><BR>'
             + '    <H1>- Temps :'+sResponse[1]+' jours et '+sResponse[2]+' heures</H1><BR>'
             + '    <H1>- Erreur :'+sResponse[3]+'</H1><BR>'
             + '  </BODY>'
             + '</HTML>'
             ;
      end;
    Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    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 093
    Par défaut
    Non, tu ne peux pas en utilisant du HTML !
    A la rigueur, tu peux envoyer dans un Champ Hidden de type TEXT ou LIST, soit le contenu de Text ou chaque Strings[], c'est de la totale bidouille

    Tu devrais plutôt utiliser un WebService SOAP dans lequel tu définiras tes interfaces (WSDL)

    Ou alors remplace ton HTML par un XML, une partie contenant des données à usage interne pour le PHP, une autre partie contenant le HTML

    Tu es vraiment en TCP ? Response c'est typiquement TIdHTTP
    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 confirmé
    Homme Profil pro
    Développeur DELPHI
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Par défaut
    Merci pour la réponse, effectivement j'avais essayé la piste du web service SOAP avec les interfaces WSDL mais je ne suis pas aller bien loin, n'y comprenant pas grand chose ! Si tu as un petit exemple simple sur le sujet ?

    Et oui je suis bien en TCP mais ce que je récupère c'est un TstringList à partir de la classe TIdTCPClient.

    Merci pour ton aide en tout cas !

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    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 093
    Par défaut
    Tu as évidemment lu l'article Services Web Delphi - John COLIBRI, il décrit le HTML et le SOAP, puis il montre un exemple de WebService !

    A savoir que par défaut, un projet WS Server de Delphi fourni 4 méthodes d'exemples, c'est très pratique pour les débutants !
    Ensuite en PHP, la WSDL générée par le WS Server permet de créer les pseudo objet de PHP (qui est plus souple que Delphi sur certains éléments mais très pénible sur d'autres, perso, je préférais NuSOAP de PHP4 que le Soap intégré de PHP5)

    Du côté Delphi, il n'y a que des interfaces à coder, tu n'as même pas besoin de vraiment pigé le WSDL (ce qui devient sérieux lorsque l'on échange des énumérations ou des objets complexes qui vaut mieux forcer en encoded, delphi ne semblant par très efficace avec le literal)

    Sinon, si tu discute en TCP\IP, que vient faire ce TWebReponse typiquement utilisé en ISAPI\CGI qui utilise HTTP comme protocol !

    Je serais toi, je supprimerais tout notion de HTML de Delphi, je fournirais un XML au client PHP, ce dernier s'occupant de la partie fusion XML + HTML (via un XSD et XSLT par exemple)
    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

Discussions similaires

  1. inserer une page php externe dans une page JSP
    Par vrossi59 dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 05/07/2005, 16h25
  2. Réponses: 11
    Dernier message: 11/03/2005, 17h41
  3. problème debodybackground dans une page php
    Par bertrand_declerck dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/02/2005, 22h39
  4. Boutons Radios qui charge une page php différente
    Par nebule dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/11/2004, 15h25
  5. connection a mssql a partir d'une page php
    Par jean_marc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/11/2003, 14h24

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