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

Services Web Discussion :

[framework 2.0] Problème de décodage d'une réponse soap xml en c#


Sujet :

Services Web

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut [framework 2.0] Problème de décodage d'une réponse soap xml en c#
    Bonjour tout le monde,

    J'ai un Service Web auquel est liée une classe proxy. Dans cette classe proxy, j'utilise une méthode chercher(). Voir code ci-dessous:

    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
     
     
    string certPath = @"C:\cb\certificat\Test.cer";
    ...
    NetworkCredential credentials = new NetworkCredential();
    CredentialCache cache = new CredentialCache();
     
    classProxy proxy = new classProxy();
     
    .....
     
    proxy.Url = @"https://....";
    proxy.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));
     
    credentials.UserName = username;
    credentials.Password = password;
    proxy.PreAuthenticate = true;
    cache.Add(new Uri("https://...."), "Basic", credentials);
    proxy.Credentials = cache;
    proxy.EnableDecompression = true;
     
    ....
    res = proxy.chercher(....);
    ....
    Jusqu'à tout récemment, dès que la méthdoe chercher(I) est appelée, cela déclenchait une exception, car le fournisseur de la méthdoe retournait du text/html dans Content-Type du Header. Ce dernier a corriger son problème et retourne du text/xml dans Content-Type du Header et cela ne déclenche plus d'exception, mais le problème est que ma variable "res" est toujours affectée à null. Pourtant avec le "sniffer" HTTP Analyser v2, je vois qu'il y a une réponse qui m'est retourné. J'ai l'impression que c# n'accepte cette réponse.

    Est-ce quelqu'un aurait un idée de quoi cela pourrait venir et comment corriger ceci afin que la variable res soit correctement affectée.

    D'avance merci beaucoup pour votre aide!

    Cédric

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Heu... La méthode chercher est dev par le fournisseur ?
    Sinon tu peux montrer le code de la méthode chercher ?

    Ne vaudrait il pas mieux mettre ton poste dans le sous forum WebService .

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut ced600,

    Oui, la méthode chercher() est développé par le fournisseur, mais voici ce quie le "sniffer" http analyser v2 me donne comme info:

    Lorsque j'envoyais ma requête et que je recevais une réponse, j'avais cece comme info dans :

    Request Header:

    (Request-Line)OST /Web/services/ZServerService HTTP/1.1
    User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.832)
    Content-Type:text/xml; charset=iso-8859-1
    SOAPAction:""
    Accept-Encoding:gzip,gzip
    Authorization:Basic WlBLSFJQUkQ6enBrJGhyeTEz
    Host:serveur:9060
    Content-Length:1729
    Expect:100-continue
    Response Header:

    (Status-Line):HTTP/1.1 200 OK
    Server:WebSphere Application Server/5.1
    Content-Type:text/html; charset=ISO-8859-1
    Set-Cookie:LtpaToken=t3/CzQj3nb1vj5tntwFEyXwX+7FL8o4GMb8JWGhLB5I46qeywYJlOuuQHUfb//2hVCUb/kOl2vN0+n9X5NnEY/itiKAG68xtHawZ4Beesg3tDzg5lT/7coMRmczn4VyTjqOJRQZANxpBOdEoBDmW3Vz0R0n24pyEvsyf9Nyb28pPB/hY/YbyAalhx9vqScz0lJFfxljg1MFFRdAjaJ/AwLBGQV8UDEF8IitNSSf68osP5Q6dFK4ERQTcDS0ydsHSEghjVSRIggYx4VhWQd1hwO3GPNiJUQPbex5BHsD57Os=;Path=/
    Cache-Control:no-cache="set-cookie,set-cookie2"
    Expires:Thu, 01 Dec 1994 16:00:00 GMT
    Content-Encoding:gzip
    Content-Language:de-CH
    Transfer-Encoding:chunked
    -------

    Lors de l''exécution ceci déclencher une exception dans c# à ceause du text/html et il fallait que proxy.EnableDecompression = true, car sinon pas de réponse.

    Après la correction du fournisseur (text/xml comme content-type de la réspone), j'ai ceci dans

    Request Header:
    (Request-Line)OST /Web/services/ZServerService HTTP/1.1
    User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.832)
    Content-Type:text/xml; charset=utf-8
    SOAPAction:""
    Accept-Encoding:gzip,gzip
    Authorization:Basic WlBLSFJUU1Q6WlBLJEhSeDc4
    Host:serveur:9050
    Content-Length:1727
    Expect:100-continue
    Response Header:

    (Status-Line):HTTP/1.1 200 OK
    Date:Fri, 21 Sep 2007 13:36:39 GMT
    Server:WebSphere Application Server/6.1
    Content-Type:text/xml; charset=utf-8
    Content-Language:de-CH
    Set-Cookie:LtpaToken2=WiGsv93vw3WWRgvlSYn9IK5RAd3HgW8CsgDBg0zUdxDIGRyS95+uJxWaz++7z0v82ieMjxAi3w6MO964pPK4xWMEEWRPvbUabIPXHgP1Deshv2I0BhJJ9rZP/wQaQzFZOxD59aXnHzol2Gx+j2bjK6Xb/G0j0vq/upZdqx2d9mKqZNyXskn/hcRaH0NXdU6LZuFZDB5AuHtSjXQqD9U0rzpMDGPqaFZxDJHpGBeBcIsFtI8mJyxAXpBNRNrqynxeaDBu5w4YJUeBul0UFwzeb1W3AbTyMVlVe2ulrJgJzSpTMPn
    H4PIKHzxiPDDKFFYM49nRRjy6xlWCZFYz0/Iu1+/CMLwu/+1GQXV+Azs6hDFkj4DCMaWtd829XoAmvyYLn0VLOtn1NRLulnOHltIFU2o6vBjMA0SWCMw3Cz7ORuhiGanv7+DbXIMSGcZSyoPGtpCOGAOWhLZ2u1CRgmft5rEcKqxt9BEeGwmoAhTzwpkLoP1j7Tqu4uzZ2cdmfo/3I5sZD2PCHrCX7KtBzxhrrQWxsi0bBWvel84lyHiOhfRytSA9Hhhf/GgN/tJaE6VTI/t14pt5NA2D+ReiBSfuqzgb26PZjwk1kDFs77tUCyzSJ0om9vkaMF
    ZWlipT6cGn; Path=/
    Set-Cookie:LtpaToken=B9cWbXuFmzxiAuXNkc7OVv0gScnSZMmEH1pSbO5pVjlMthkNDN5N6oYApW97JO8UtxXX+MYXa55OR8Z1s11zcj2wOoQQtHHuKqDMCV0gpAC4piiT1bNOPoS0nhBiQ1FzYj8buoKupTT6N9nzI9du7cijqMjpDQN+HMV0Cy+687XfvslkCI1K7h77fH8ZdFns+lqdBdRrNwbwqS6UOQOgk8csEsNMQ34l3YNx7TZKBto3bWw1QikCyBrYJHVT8VJq7WCHpeRkD8MboUuipvGODWFl4s0Z6mFObowldskx1o4=; Path=/
    Transfer-Encoding:chunked
    Expires:Thu, 01 Dec 1994 16:00:00 GMT
    Cache-Control:no-cache="set-cookie, set-cookie2"
    ----

    Avec ce nouveau je n'ai plus d'exception qui est déclenché dans c# mais ma variable res = proxy.chercher(....) est tojours égal à null, quelque soit le valeur de la proriété proxy.EnableDecompression. Je ne sais s'il y a un problème de décode ou autre!

    Si quelqu'un à une idée, je suis partie prenante.

    D'avance merci pour votre aide!

    Cédric

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Bah je dirais que c'est ta fonction chercher() qui déconne et comme c'est celle du fournisseur, je pense qu'il est le seul à pouvoir régler le problème.
    Desolé

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut ced600,

    Mais le problème est que dans le "sniffer" HTTP Analyser V2. Je constate que la méthdoe du fournisseur me retrouner un réponse par rapport à la requête que je lui envoie. Le problème est que c# n'aime quelque chose, mais je ne sais pas vraimment quoi! Est-ce que l'élément Set-cookie (voir message précédent) peut avoir une influence dans la répones?

    D'avance merci beaucoup pour l'aide!

    Cédric

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Desolé mais je ne sais pas ce que c# n'aime pas, tu as beau recevoir une réponse, je suppose qu'elle est traité par chercher, cela ne signifie pas qu'elle est juste comme tu prétends. mais à moins que le fournisseur ta spécifié que la méthode retourne null dans certain cas, je dirais que c'est sa méthode qui ne marche pas.
    Si la méthode peut renvoyer null dans certain cas, alors peut être que le problème vient du header envoyer qui provoque une réponse incorrect.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Ced600,

    Je penchearis pour ta dernière phrase, car dans HTTP Analyser V2, je peux voir l'enveloppe de requête soap qui est envoyé à la méthode proxy.chercher() et l'enveloppe reponse soap qui est retourné par cette méthode.
    Et dans l'enveloppe de réponse j'ai le contenu XML qu'il me faudrait! Mais comme je ne suis un spécialiste du décryptage, je ne voit qu'est-ce qu'il me manquerait pour c# accepte cette réponse.

    Si tu as une idée ou un endroit ou je pourrais plus d'information à ce propos, dit-le moi!

    En tout merci pour ton aide!

    Cédric

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    désolé pas d'idée, mais je me diasais que dans le sous forum web servcie, il y a peut être plus de personne adepte à ce genre de chose qui regarde les messages.

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Ced600,

    Voilà, j'ai demandé à déplacer mon sur le forum WebService, afin d'avoir davantage de conseils, en tout cas, merci pour ton aide!

    Cédric

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Bonjour tout le monde,

    Par rapport à mon problème est-ce que les namespace pourrait avoir une influence sur le fait que ma variable "res" soit toujours à null.

    D'avance merci pour votre réponse.

    Cédric

  11. #11
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je ne vois pas comment cela pourrait influer.

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Je me disais que cela pourrait avoir une influence, car lors de la génération du fichier source (*.cs) à partir du fichier *.wsdl avec l'outil wsdl.exe, j'ai des message d'avertissement du style:

    Avertissement de validation de schéma: L'élément de schéma 'complexType' nommé 'Credentials' de l'espace de noms 'http://...' n'est pas valide
    car dans ce fichier *.wsdl, j'ai des balise <scheama ...> dans lesquelles il y a chaque des namespace.

    Est-ce que quelqu'un pourrait me dire à quel endroit dans le fichier wsdl (je ne suis pas vraiment un expert) je peux corriger afin de ne plus avoir ces messages d'avertissement.

    D'avance, merci pour votre aide!

    Cédric

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Bonjour,

    Malgré les messages d'avertissements montrés plus haut, un fichier source est qu'en même généré. Mais lorsque je compile le fichier source l'outil csc.exe (versions 1.1 ou 2.0 du framesork, le problème reste le même), j'ai le message suivant qui apparaît:

    Framework 1.1
    error CS0519: Conflit entre 'System' et l'espace de noms prédéfini

    Framework 2.0
    warning CS0437: Le type 'System' dans 'c:\...cs' est en conflit avec l'espace de noms import‚ 'System' dans 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll'. Utilisation du type.
    Est-ce que quelqu'un saurait comment on peut reféfinir une classe nommé "System" afin quel ne rentre pas en confilt avec la classe "System" de c#, tout en sachant qu'elle doit garder le même nom.

    D'avance merci pour votre aide!

    Cédric

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Hello tout le monde,

    Le Service Web je faisais référence va changer, donc peut être que mon problème sera résolu!

    En tout cas, merci pour votre aidre!

    Cédric

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 21/07/2011, 14h27
  2. [Web Service][SOAP] Lire une réponse SOAP
    Par jmalfoy dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 01/03/2010, 14h21
  3. [Web Service] Parser une réponse SOAP ARRAY
    Par vanmouniren dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/02/2010, 13h46
  4. [MooTools] Traiter une réponse ajax XML avec Mootools
    Par dolu02 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 24/12/2008, 16h58

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