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

C# Discussion :

Aide sur WSDL et Webservices


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut Aide sur WSDL et Webservices
    Salut,

    Un client m'a donné un fichier WSDL. Avec WSDL.exe j'ai généré une interface et des classes dans un fichier c#

    Doit on appeler ces classes des classes proxy ?

    Les classes ne comportent aucunes méthodes, seule l'interface en comporte. Donc si j'implémente cette interface, j'ai une belle classe mais pour y mettre quoi à l'intérieur ?

    merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Oui l'interface qui a été généré est appelé proxy. Les classes incluses dans le fichier sont des classes en lesquelles tes flux SOAP seront désérailisés/sérialisés.

    Tu n'as rien à faire aucune implémentation n'est à faire.
    Tu as juste besoin d'utiliser ton proxy en lui fournissant le endpoint (si c'est du WCF) pour communiquer avec ton service.

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut
    merci pour ta réponse.
    J'ai déjà créé des webservices pour mes applis mais jamais utilisé des services existants.

    Je suis obligé de passer par le wcf ? (n'y connaissant rien en wcf).
    Je ne peux pas appeler d'une manière ou d'une autre le webservice par mon code tout simplement ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mappy Voir le message
    merci pour ta réponse.
    J'ai déjà créé des webservices pour mes applis mais jamais utilisé des services existants.
    C'est le même principe que pour les web services ASMX. Tu généres un proxy qui te permet de communiquer avec le service web.

    Citation Envoyé par mappy Voir le message
    Je suis obligé de passer par le wcf ? (n'y connaissant rien en wcf).
    Le service web dont tu parles t'as fourni un fichier WSDL et tu as généré un proxy avec ce même fichier. Si tu regardes bien dans ce fichier tu as quelque part où il est marqué l'adresse te permettant de communiquer avec le service web.

    Citation Envoyé par mappy Voir le message
    Je ne peux pas appeler d'une manière ou d'une autre le webservice par mon code tout simplement ?
    Je ne comprends pas. Si tu as généré un proxy avec WSDL.exe, t'as une classe proxy te permettant de communiquer avec tout simplement via le code.

  5. #5
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut
    Voilà un exemple du proxy généré.
    Comment appelerais tu la méthode username_exits ?
    Sachant qu'il s'agit d'une interface et qu'il faut donc l'implémenter...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")]
        [System.Web.Services.WebServiceBindingAttribute(Name="admin_webservicesBinding", Namespace="https://wsServeur.monserveur.net")]
        [System.Xml.Serialization.SoapIncludeAttribute(typeof(table_field))]
        public interface IAdmin_webservicesBinding {
     
            /// <remarks/>
            [System.Web.Services.WebMethodAttribute()]
            [System.Web.Services.Protocols.SoapRpcMethodAttribute("https://192.168.001.002/username_exists", RequestNamespace="https://mondomaine.monserveur.net", ResponseNamespace="https://mondomaine.monserveur.net")]
            [return: System.Xml.Serialization.SoapElementAttribute("return")]
            bool username_exists(string username);

  6. #6
    Membre actif Avatar de istace.emmanuel
    Homme Profil pro
    Senior Full-Stack .Net Developer
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Full-Stack .Net Developer
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Points : 265
    Points
    265
    Par défaut
    Tu ne dois pas l'implémenter, juste l'utiliser "as is".
    L'implémentation est réalisé coté serveur.

    Jette un coup d'oeuil ici (WCF Client Overview): http://msdn.microsoft.com/en-us/library/ms735103.aspx

    Et ici (Accessing Services Using a WCF Client) : http://msdn.microsoft.com/en-us/library/ms734691.aspx

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Petite astuce si tu as l'url du service, clic droit sur ton projet, addService reference. tu verra un formulaire assez simple, tu valides et ça te génère ton objet proxy que tu utilises ensuite pour tes appels webservice

  8. #8
    Membre actif Avatar de istace.emmanuel
    Homme Profil pro
    Senior Full-Stack .Net Developer
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Full-Stack .Net Developer
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Points : 265
    Points
    265
    Par défaut
    Petite astuce si tu as l'url du service, clic droit sur ton projet, addService reference. tu verra un formulaire assez simple, tu valides et ça te génère ton objet proxy que tu utilises ensuite pour tes appels webservice
    Ouep, ce qui marche sur un service up and running, la il a juste le wsdl :/
    Sinon c'est clairement la solution la plus simple

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par istace.emmanuel Voir le message
    la il a juste le wsdl ?
    T'es d'accord que pour communiquer avec un service web que tu as au minimum besoin de l'url t'indiquant où se trouve le service web ?
    Si t'es d'accord alors demande à la personne qui t'as fourni le fichier WSDL de te fournir l'url.
    Si t'es pas d'accord, alors là cela veut dire que tu n'as pas bien compris à quoi sert un fichier WSDL. Un fichier WSDL te permet juste de générer un proxy te permettant de communiquer avec le service sous condition de connaitre l'url de ce service. En aucun cas un WSDL ne permet d'avoir l'implémentation du service.
    Si tu ne peux contacter la personne qui t'as fourni le WSDL tu peux fouiner dans le fichier parce que la plupart du temps on y retrouve l'url du service.

  10. #10
    Membre actif Avatar de istace.emmanuel
    Homme Profil pro
    Senior Full-Stack .Net Developer
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Full-Stack .Net Developer
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Points : 265
    Points
    265
    Par défaut
    T'es d'accord que pour communiquer avec un service web que tu as au minimum besoin de l'url t'indiquant où se trouve le service web ?
    Si t'es d'accord alors demande à la personne qui t'as fourni le fichier WSDL de te fournir l'url.
    Si t'es pas d'accord, alors là cela veut dire que tu n'as pas bien compris à quoi sert un fichier WSDL. Un fichier WSDL te permet juste de générer un proxy te permettant de communiquer avec le service sous condition de connaitre l'url de ce service. En aucun cas un WSDL ne permet d'avoir l'implémentation du service.
    Si tu ne peux contacter la personne qui t'as fourni le WSDL tu peux fouiner dans le fichier parce que la plupart du temps on y retrouve l'url du service.
    Je suis en effet d'accord, mais il m'est déjà arrivé (2 fois à vrai dire) d'avoir juste un WSDL sans pour autant avoir un WS up et de ne pouvoir tester qu'après les 3/4 du développement voir la fin pour le second cas.
    Les deux fois j'ai du faire une sorte de webservice-mock.
    Et ces deux fois se sont bien passé ^^

Discussions similaires

  1. Aide sur fichier WSDL et Jax WS
    Par silverfab34 dans le forum Services Web
    Réponses: 2
    Dernier message: 16/10/2007, 14h05
  2. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19
  3. Réponses: 2
    Dernier message: 27/02/2003, 01h33
  4. [Kylix] Aide sur BitBlt
    Par mic006 dans le forum EDI
    Réponses: 1
    Dernier message: 10/12/2002, 22h54
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

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