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 :

Appelé depuis intraweb un webservice


Sujet :

Web & réseau Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 182
    Par défaut Appelé depuis intraweb un webservice
    J'ai un GROS pb.
    J'ai fait un webservice dont l'une des fonctions est de me retourner du texte afin de tester que cela fonctionne. Je souhaite envoyer à cette fonction du texte et en récupérer. J'ai le code suivant dans le webservice WS_Test.exe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function TPlanning.TestMsg(const aMessage: string): string;
    begin
       Result := 'Demande du Web :' + aMessage + chr(13) + chr(13) + 'Réponse du WS : Coucou, je suis est là !!!';
    end;
    Mon pb est de savoir comment depuis mon projet intraweb appeler testmsg.
    J'ai mis le code suivant sur un clic de bouton mais c'est vraiment bête car je lui demande d'aller à l'adresse en question au travers de la commande gotoURL avec le paramètre 'Test allez-retour' mais à aucun moment je ne récupère les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WebApplication.goToURL(
    'http://nom_de_mon_serveur/webserv/WS_Test.exe?' + chr(13) +
    'Test Allez-Retour...');
    Help, je suis vraiment perdu.
    Merci d'avance.

  2. #2
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    Bonjour,

    Utilise les composants indy httpclient pour faire une requète à ton serveur en http et récupérer la valeur pour l'afficher.

    @++
    Dany

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 182
    Par défaut
    J'essai d'utiliser idHTTP1 qui est de type IdHTTP1: TIdHTTP
    mais je n'y arrive pas.
    J'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with IdHTTP1.Create(Application) do
    try
       try
          Get('http://nom_de_mon_serveur/webserv/WS_Test.exe/testmsg?Test Allez-Retour...');
       except
          on e: Exception do
             iwlabel16.Caption := 'Erreur';
       end;
    finally
       Free;
    end;
    Avez-vous une idée de la syntaxe que je devrais utiliser?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 182
    Par défaut
    Je viens de modifier mon code en prenant exemple sur http://delphi.developpez.com/faq/?page=indy_idhttp
    mais j'ai toujours le même pb :
    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
    procedure TMainForm.btnTestClick(Sender: TObject);
    var Fs : TFileStream;
    begin
      Fs := TFileStream.Create('c:\test.txt',fmCreate);
      try
    DownloadHTTP('http://nom_de_mon_serveur/webserv/WS_Test.exe/testmsg?Allez-Retour...',TStream(fs));
      finally
        Fs.Free;
      end;
    end;
     
    procedure TMainForm.DownloadHTTP(const AUrl : string; out DestStream: TStream);
    begin
      with TIdHTTP.Create(Application) do
      try
          try
            Get(AUrl,DestStream);
          except
            On e : Exception do
             WebApplication.ShowMessage('Erreur');
          end;
      finally
          Free;
      end;
    end;
    J'ai le message Erreur qui apparait. car lors du Get, je passe dans la gestion d'erreur. ma syntaxe doit être fausse (ça c'est sur) mais je ne trouve pas la bonne.
    Mon fichier test.txt donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    <h1>La page est introuvable</h1>
    Il se peut que la page que vous recherchez ait été supprimée, ait changé de nom ou soit momentanément indisponible.
    <hr>
    ...
    Help

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 182
    Par défaut
    Cela "marche" maintenant. j'avais une erreur dans mon adresse.
    Cela me met dans le fichier txt l'ensemble des procédures et fonctions de mon webservices.
    Mais cela me pose un pb car c'est du téléchargement et pas de l'exécution.
    Il me faut executer WS_Test.exe qui me renvoi du texte.
    Soit je fais une erreur de syntaxe, soit je n'utilise pas le bon objet.
    ???

  6. #6
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    Bonjour,

    ah, ok désolé j'ai lu trop vite, c'est un webservices que tu veux appeler, il faut donc utiliser les composants du panel webservices de Delphi 7 (à partir de la version pro). Pour les exemples je sais qu'il y a des projets démo fournis avec Delphi. Là je ne pourrais pas trop t'aider car perso j'utilise la suite RemObjects pour tout ce qui est webservices. J'avais essayé ces composants, mais il y a longtemps et de ce que je me souviennes ce n'est pas bien compliqué à mettre en œuvre.

    @++
    Dany

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 182
    Par défaut
    J'ai réussi sous delphi6.
    Je suis allé sur le web en saisissant l'adresse de mon webservice.
    J'ai récupéré le WSDL de celui-ci et dans delphi, j'ai fait Fichier/Nouveau/ServicesWeb/ImportateurWSDL en sélectionnant mon fichier WSDL.
    J'ai ensuite la syntaxe du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebApplication.showmessage(GetITest(False, '').TestMsg('Test Allez-Retour...'));
    et cela marche
    Merci de votre aide.

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

Discussions similaires

  1. webService JSON : problème lors de l'appel depuis un autre site
    Par Pat_AfterMoon dans le forum Services Web
    Réponses: 1
    Dernier message: 22/11/2011, 01h22
  2. Exception dans un webservice (appel depuis silverlight)
    Par boby62423 dans le forum Services Web
    Réponses: 3
    Dernier message: 19/06/2009, 08h48
  3. Réponses: 4
    Dernier message: 01/05/2006, 14h37
  4. [Sqlplus ] Appel depuis script KSH
    Par kasiop dans le forum Oracle
    Réponses: 2
    Dernier message: 27/01/2006, 10h25
  5. [APPLET] beans dans applet appelé depuis une page HTML
    Par Néo-Tony dans le forum Applets
    Réponses: 1
    Dernier message: 04/01/2006, 14h54

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