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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

+ 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