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 :

[Delphi7] Exemple webservices vers HTTPS


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut [Delphi7] Exemple webservices vers HTTPS
    Bonjour,

    je suis a la recherche d'un exemple d'un code me permettant d'attaquer un webservice sur une machine distante.
    je n'ai pas besion du serveur

    merci

  2. #2
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Perso, j'utilise Delphp, il réagit comme un navigateur, il est donc prévu de pouvoir installer SSL... Mais ya d'autres solutions bien entendu...

    Peut-être pourrais-tu nous en dire un peu plus sur ce webservice.

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    Merci sub0, je vais regarder ton lien

    en fait, je dois aller chercher des infos sur un serveur.
    les infos dont je dispose sont:

    PROXY : https://mysite.com:8444/soap
    URI : https://mysite.com/SOAP/Customer

    User : myuser
    Password : mypwd

    je n'ai pas de fichier WSDL
    j'ai une liste de fonction (méthodes) disponibles:
    - getinfouser
    - getinfolist
    ...
    avec la structure qu'elles retournent.

    il faut que je developpe une interface en delphi7 qui récupère ces infos a la demande.

    voila, tu en sait autant que moi

    merci de votre aide
    A+

  4. #4
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Avec les explications que tu m'as donné dans ton 2ème message, Delphp ne te servira à rien puisqu'il commande des scripts PHP... Pour utiliser SOAP, recherche avancée sur le forum donne : http://xml.developpez.com/soap.php

    Et en particulier : http://dn.codegear.com/article/27319

  5. #5
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    rebonjour,

    j'ai réussi a faire fonctionner un script perl

    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
    #!/usr/bin/perl -w
     
    use strict;
    use Data::Dumper;
    use SOAP::Lite
        +trace => 'debug'
    ;
    use Crypt::SSLeay;
     
    my $soap_host = 'myserver.com';
    my $soap_port = ':433';
     
    my ($login, $password) = ('MyUserName', 'MyPWD');
     
    my $soap = SOAP::Lite
        -> uri("https://$soap_host/SOAP/Session")
        -> proxy("https://${soap_host}${soap_port}/soap")
        -> on_fault(
            sub {
                my ($soap, $result) = @_;
                die ref $result ? $result-> faultstring : $soap->transport->status, "\n";
            }
        );
     
    my $soap_info_list = SOAP::Lite
        -> uri("https://$soap_host/SOAP/Customer")
        -> proxy("https://${soap_host}${soap_port}/soap")
        -> on_fault(
            sub {
                my($soap, $res) = @_;
                # die on any error
                die ref $res ? $res->faultstring : $soap->transport->status, "\n";
            }
        );
     
    my $session = $soap->SOAP::new();
     
    my $session_id = $soap
        -> login($session, $login, $password)
        -> result;
     
    print "session_id => $session_id \n";
     
    my $auth_info = {
        session_id => $session_id
    };
     
    $auth_info = SOAP::Header->name(auth_info => $auth_info);
     
    my $res = $soap_info_list
        -> get_customer_list($auth_info, {offset =>  0, limit => 2 })
        -> result;
     
    print Dumper($res->{customer_list});
    j'ai essayé de le retranscrire en delphi7:
    unité de déclaration SOAP

    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
    unit USOAP;
     
    interface
     
    uses InvokeRegistry, Types, XSBuiltIns, Classes;
     
    type
     
     
      // ************************************************************************ //
      // Namespace : urn:auth_info
      // ************************************************************************ //
      SoapStructHeader = class(TRemotable)
      private
        FLoging: WideString;
        FPassword: WideString;
      published
        property Loging: WideString read FLoging write FLoging;
        property Password: WideString read FPassword write FPassword;
      end;
     
     
      IMyService = interface(IInvokable)
      ['{89DF58FA-5E82-EF1B-6954-FC4177FCF692}']
        function  get_customer_list(const offset, limit: Integer): WideString; stdcall;
      end;
     
    function GetIMyService(Addr: string=''): IMyService;
     
     
    implementation
      uses SOAPHTTPClient;
     
    function GetIMyService(Addr: string): IMyService;
    var
      RIO: THTTPRIO;
    begin
      Result := nil;
      if (Addr = '') then
      exit;
     
      RIO := THTTPRIO.Create(nil);
      try
        Result := (RIO as IMyService);
        RIO.HTTPWebNode.WSDLView := nil;
        RIO.HTTPWebNode.Password:='myPWD';
        RIO.HTTPWebNode.UserName:='myUserName';
        RIO.HTTPWebNode.Proxy:='https://MyProxy/soap';
        RIO.URL := Addr;
      finally
        if Result = nil then
          RIO.Free;
      end;
    end;
     
     
    initialization
      InvRegistry.RegisterInterface(TypeInfo(IMyService), 'urn:MyServiceIntf-IMyService', 'utf-8');
      InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IMyService), 'urn:#%operationName%');
     
    end.
    unité clickable

    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
    ......
    function TClientForm.GetService: IMyService;
    begin
      HTTPRIO1.URL := ComboBox1.Text;
      EdtUser.Text:= HTTPRIO1.HTTPWebNode.UserName ;
      EdtPWD.Text:= HTTPRIO1.HTTPWebNode.Password ;
      EdtProxy.Text:= HTTPRIO1.HTTPWebNode.Proxy;
      Result := HTTPRIO1 as IMyService;
    end;
     
    procedure TClientForm.Button1Click(Sender: TObject);
    begin
      { Teste le service }
      GetService.get_customer_list(0,2);
    end;
     
    ....
    delphi me retourne un msg "paramètre incorrect" quand je clicke sur button1

    merci de votre aide

    ou si vous avez un exemple similaire en Delphi7

Discussions similaires

  1. [Tomcat] Webservice over HTTPS
    Par encom79 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 24/01/2007, 09h56
  2. [Tomcat] Webservice over HTTPS
    Par encom79 dans le forum Services Web
    Réponses: 0
    Dernier message: 22/01/2007, 17h11
  3. Redirection http vers https
    Par valou7518 dans le forum Apache
    Réponses: 1
    Dernier message: 13/12/2006, 16h59
  4. Evolution vers HTTPS
    Par regisba dans le forum JOnAS
    Réponses: 1
    Dernier message: 10/10/2006, 16h04
  5. transition https vers http
    Par Florent08800 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 4
    Dernier message: 19/09/2006, 11h28

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