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 :

Problème décodage paramètre


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut Problème décodage paramètre
    Bonjour,

    J'ai un service web en c# et je veux l'appeler à partir d'une page asp classique à l'aide d'un post http standard en envoyant les paramètres url encodés.

    Voici comment j'appelle le service web:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
     
    xmlHttp.Open "POST", "http://localhost:7549/MonService/Service.asmx/MaMethode", False
    xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    xmlHttp.send "texte=" & Server.URLEncode(strTexte)
    Le web service va automatiquement décoder le paramètre qui a été url encodé, cependant les accents et autres caractères français sont remplacés par "?".

    Ma page ASP est encodée "windows-1252" et mon web service est encodé utf-8, je suppose que c'est là le problème, mais je ne comprend pas pourquoi puisque la requête est url encodée...

    Est-ce que quelqu'un peut m'éclairer et me proposer des solutions ?

    Merci beaucoup !

  2. #2
    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 loki13,

    Oûi c'est très certainement le problème d'encodage qui fait que tes carctèrs sont mal interprété! As-tu déjà essayé de changer au niveau du service Web l'encodage et de mettre par exemple: "ISO-8859-1"? Peut être qu'avec ce changement, cela pourra jourer!

    Cédric

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut
    Merci Cédric pour ta réponse.

    J'ai ajouté au web.config de mon WS le code suivant et ça a corrigé le problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <globalization 
                requestEncoding="windows-1252"
                responseEncoding="windows-1252" />
    En fait je croyais à tort qu'une valeur url encodée représentait toujours la même valeur une fois décodée et donc que je n'avais pas besoin de spécifier l'encodage de la requête.
    Mais je me suis rendu compte que l'url-encodage était fait par rapport au charset utilisé par le script qui effectue l'url-encodage.
    Donc ma page client url-encodait selon windows-1252 et mon WS url-décodait selon utf-8, c'est pour ça que ça ne marchait pas.

    Je trouve un peu dommage par contre de forcer tous les clients à appeler le WS selon un encodage précis, ça aurait été génial s'il y avait eu une façon de détecter l'encodage de la requête et décoder avec le bon charset.

  4. #4
    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
    Mais de rien!

    C'est vrai que l'encodage et le décodage de requête avec le bon encoding n'est pas chose faciel entre celui qui envoie la requête et celui qui l'a reçoit:

    J'avais eu le cas avec des page HTML qui appelait un Service Web et suivant le navigateur (Internet Explorer, FireFox,...) le résultat d'encodage jouait avec l'un, mais pas avec l'autre.

    Bon développement!

    Cédric

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

Discussions similaires

  1. Problème requête paramétrée mysqli
    Par Ethylene dans le forum Installation
    Réponses: 5
    Dernier message: 15/05/2006, 16h57
  2. Problème de paramètres dans mon code javascript
    Par cocacollection dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2006, 10h53
  3. [POO] Problème de paramètre passé par référence
    Par dug dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2005, 20h29
  4. [JSP] Problème passage paramètre
    Par besco dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 13/09/2004, 10h15
  5. [SWT] Problème de paramètre GridData
    Par yolepro dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 06/12/2002, 10h37

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