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

WinDev Discussion :

Web Service + Apache + UTF-8


Sujet :

WinDev

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut Web Service + Apache + UTF-8
    Bonjour à tous,

    J'ai créé un Web Service avec Windev 16 et qui fonctionne sur un serveur Apache.

    Lorsque je le consomme dans mon code windev tout fonctionne bien.
    Le problème est que mon client utilise un code tier et il a une anomalie d'encodage de l'entête HTTP.

    Il s'attend à avoir une charset=utf-8 et il obtient systématiquement un charset=iso-8859-1.
    Lorsque j'observe la trame avec Wireshark il y a effectivement toujours un entête et une enveloppe de la réponse en iso-8859-1 qui est retourné par le Web Service.

    J'ai tout essayé dans le code Windev pour retourner du UTF-8 mais ça ne marche pas, chaineversUTF8(), xml..encodage="UTF-8", xmlconstruitchaine("xml",XMLDocumentDéfaut,XMLEncodageUTF8) ...

    Je croyais que c'était Apache qui formait l'entête HTTP de la réponse ainsi que l'enveloppe mais apparement non.

    Je n'arrive pas à voir d'où viens cet encodage, je ne sais pas où se forme l'entête HTTP et l'enveloppe de la réponse.

    Quelqu'un a une idée ?

  2. #2
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Bonjour, c'est juste une piste, voyez peut-être du coté de la configuration d'Apache. Forcer-le à utiliser UTF-8. Créer un fichier .htaccess contenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddDefaultCharset utf-8
    Pour plus de détail

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    Bonjour, j'ai déjà essayer de mettre cette ligne de commande dans le httpd.conf d'Apache sans succès.

    J'ai réussi à créer un fichier ".htaccess", windows n'accepte pas ce nom de fichier.

    Est-ce que je dois l'appeler autrement "file.htaccess" par exemple ? et où dois-je le mettre ?

  4. #4
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Citation Envoyé par Darri06 Voir le message
    Bonjour, j'ai déjà essayer de mettre cette ligne de commande dans le httpd.conf d'Apache sans succès.

    J'ai réussi à créer un fichier ".htaccess", windows n'accepte pas ce nom de fichier.

    Est-ce que je dois l'appeler autrement "file.htaccess" par exemple ? et où dois-je le mettre ?
    Bonjour, oui, il faut l'enregistrer comme "file.htaccess" puis le renomer en .htaccess

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    Windows ne m'autorise pas à renommer un fichier avec uniquement l'extension .htaccess, je suis obliger de mettre un nom devant le .

    Sinon ce fichier je le met dans le répertoire du web service ? avec uniquement cette ligne de commande ?

  6. #6
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    sous notepad, il suffit de mettre des guillemet autour de .htaccess pour l'enregistrer.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    Effectivement sous notepad ça passe.

    Par contre j'ai mis mon .htaccess dans le repertoire du Web Service, il n'y a que la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddDefaultCharset utf-8
    Et j'ai toujours l'enveloppe et l'entête du message en iso-8859-1 .

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    Je viens de ré-essayer en rajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Header set Content-Type "text/xml; charset=UTF-8"
    Mais toujours cette entête et cette enveloppe en iso-8859-1 !

  9. #9
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AddDefaultCharset On
    AddDefaultCharset utf-8

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    J'ai ajouté ces 2 lignes mais ça ne fonctionne toujours pas, j'ai essayé de les mettre dans le fichier httpd.conf d'Apache et toujours rien.

    En suivant avec Wireshark j'ai systématiquement dans l'entête http:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Content-Type: text/xml; charset=iso-8859-1
    Et dans l'enveloppe xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version='1.0' encoding='ISO-8859-1'?>

  11. #11
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Bonjour, dans ce cas, dans le module <IfModule mime_module> ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddDefaultCharset utf-8
    et si charset iso-8859-1 existe, décommente-la.
    verifie aalors avec web-snifer ou autre(Bien sûr, il faut recharger apache pour prendre en compte a modif )

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    Bonjour,

    ça ne fonctionne toujours pas, j'ai toujours une entête et une enveloppe de retour en iso-8859-1 ...
    je redémarre bien Apache à chaque config.

    Le problème peut-il venir de Windev ?
    Je n'ai trouvé aucun moyen de forcer l'entête ou l'enveloppe de retour en utf-8 dans Windev.
    On peut forcer l'encodage du contenu en utf-8 (ChaineVersUTF8) mais l'enveloppe et l'entête HTTP sont inaccessibles depuis le code Windev.

    Y a-t-il un paramétrage caché ?

    Quelqu'un a-t-il une idée ?

  13. #13
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Bonjour, je ne comprend pas comment ça n'a pas marcher.

  14. #14
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Bonjour, Reprenons notre résonnement à zéro :

    1- Dans le httpd.conf,vérifier dans <Directory ".../www/htdocs"> que la directive

    AllowOverride est AllowOverride All (si elle none,changez-la)

    2- Dans la même Directory, ajouter la directive suivante :
    AccessFileName .htaccess
    3- Dans le fichier .htaccess, mettez ces deux lignes :

    AddDefaultCharset On
    AddDefaultCharset utf-8


    Normalement, ça doit fonctionner sans problème.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    Effectivement je n'avais pas mis dans le httpd.conf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AllowOverride All
    AccessFileName .htaccess
    En le rajoutant, Apache refuse de se lancer. Si j'enlève "AccessFileName .htaccess" il se lance bien mais ça ne change rien du tout.

  16. #16
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Bonjour, supprimer alors le fichier ;htaccess et faite ceci :

    Citation Envoyé par miripesage Voir le message
    Bonjour, Reprenons notre résonnement à zéro :

    1- Dans le httpd.conf,vérifier dans <Directory ".../www/htdocs"> que la directive

    AllowOverride est AllowOverride All (si elle none,changez-la)

    2- Dans la même Directory, ajouter la directive suivante :
    AddDefaultCharset On
    AddDefaultCharset utf-8


    Ajouter également dans
    <VirtualHost *>
    AddDefaultCharset utf-8
    </VirtualHost>
    Normalement, ça doit fonctionner sans problème.(Si vous pouvez m'envoyer votre httpd.conf, j'aimerai bien y jeter un coup d'oeil)

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    J'ai fait tout ça mais j'ai toujours mon entête et mon enveloppe en iso-8859-1.
    Je ne sais plus quoi faire ...

    Dans le httpd.conf, j'ai juste rajouter ça à la fin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Alias /WSTEST/ "C:/Partage/WSTEST/"
    <Directory C:/Partage/WSTEST/>
    AllowOverride All
    AddDefaultCharset On
    AddDefaultCharset utf-8
    Allow from all
    AddType text/cache-manifest .manifest
    </Directory>
     
    <VirtualHost *>
    AddDefaultCharset utf-8
    </VirtualHost>
    J'avais déjà décommenté :

    LoadModule charset_lite_module modules/mod_charset_lite.so
    LoadModule headers_module modules/mod_headers.so
    Include conf/extra/httpd-vhosts.conf

  18. #18
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Bonjour, c'est incompréhensible!
    Dans le fichier 'httpd.conf' décommentez cette ligne(si elle existe):

    AddDefaultCharset ISO-8859-1

    Ouvrez un nouveau fichier (dans) ../apache*./httpd.conf/charset portant le nom 'charset'

    Inserez la ligne suivante dedans:
    AddDefaultCharset utf-8

    Recarger apache.
    (J'aimerai bien avoir une vue sur votre httpd.conf)

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    Dans le httpd.conf, je n'ai pas de ligne :

    AddDefaultCharset ISO-8859-1

    Dans C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\ , j'ai déjà un fichier charset.conv ... c'est dans celui là que je dois mettre AddDefaultCharset utf-8?

    J'aimerai bien envoyé le fichier httpd.conf mais je ne peux pas mettre de pièce jointe dans le forum (toutes les options de l'éditeur de réponse sont inaccessible ...)

  20. #20
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Pour cerner ce problème, dans le C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf, modifier momontanément la
    <Directory /> principale comme suite :
    <Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
    </Directory>

    Dans le module
    <IfModule mod_mime>

    AddDefaultCharset On
    AddDefaultCharset utf-8
    Recharger apache et verifier l'entete http.

Discussions similaires

  1. Web service - Apache ou IIS
    Par dominoz dans le forum Web & réseau
    Réponses: 5
    Dernier message: 13/05/2010, 12h30
  2. Réponses: 2
    Dernier message: 25/08/2008, 10h30
  3. Web services avec apache CXF
    Par bendf82 dans le forum Services Web
    Réponses: 1
    Dernier message: 18/08/2008, 12h14
  4. web service (Java-Oracle-Apache)
    Par AmineAsp dans le forum Services Web
    Réponses: 3
    Dernier message: 05/06/2007, 17h56
  5. exécuter un service web pour apache
    Par toure32 dans le forum Delphi
    Réponses: 3
    Dernier message: 28/03/2007, 01h19

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