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

Développement Windows Discussion :

WebClient : Encodage en ISO-8859-1 d'un POST


Sujet :

Développement Windows

  1. #1
    Membre actif
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut WebClient : Encodage en ISO-8859-1 d'un POST
    Bonjour,

    Je suis client d'un serveur qui a un de ses paramètres de POST qui contient un é....
    Il code ses caractères en ISO-8859-1.

    J'utilise un WebClient UploadValues pour envoyer les données.
    J'ai défini sa propriété Encoding comme cela ; wbClient.Encoding = Encoding.GetEncoding("iso-8859-1")

    Mais lorsque je regarde ce qui est envoyé (et refusé par le serveur) j'ai %c3%a9 d'encodé pour mon é et non %E9

    Ou autrement dit comme faire que webclient fasse l'encodage avec un
    HttpUtility.UrlEncode("é ùàç", Encoding.GetEncoding("iso-8859-1")) au lieu de HttpUtility.UrlEncode("é ùàç") ?

    Quelqu'un saurait-il comment résoudre ce problème ?

    D'avance merci.

  2. #2
    Membre actif
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Avril 2010
    Messages : 15
    Par défaut
    Et bien il semblerait que ce ne soit pas possible....

    J'ai donc contourné le problème en utilisant un WebRequest au lien d'un WebClient

    Et j'ai créé une méthode qui envoie les infos en les codant selon la propriété EncodeurTexte


    Public Function EnvoieRequete(URl As String, Methode As String, Parametres As NameValueCollection) As String
    Dim ChaineRetour As String = ""
    Dim RequeteHttp = CType(WebRequest.Create(URl), HttpWebRequest)
    RequeteHttp.CookieContainer = Cookies
    RequeteHttp.Method = Methode
    If Parametres IsNot Nothing Then
    Dim postData = New StringBuilder()

    Dim PremierParam = True

    For Each Cle In Parametres.AllKeys
    If Not PremierParam Then
    postData.Append("&")
    End If
    PremierParam = False
    postData.Append(HttpUtility.UrlEncode(Cle, EncodeurTexte) & "=")
    postData.Append(HttpUtility.UrlEncode(Parametres(Cle), EncodeurTexte))
    Next
    Dim ascii = New ASCIIEncoding()
    Dim postBytes = ascii.GetBytes(postData.ToString())
    Dim postStream = RequeteHttp.GetRequestStream
    postStream.Write(postBytes, 0, postBytes.Length)
    postStream.Flush()
    postStream.Close()
    RequeteHttp.ContentType = "application/x-www-form-urlencoded"
    End If

    Dim Reponse = CType(RequeteHttp.GetResponse(), HttpWebResponse)
    If Reponse.StatusCode <> HttpStatusCode.OK Then
    Throw New WebException("Réponse reçue " & Reponse.StatusCode & "(" & Reponse.StatusDescription & ")")
    End If
    Dim StreamRep = Reponse.GetResponseStream
    Dim readStream = New StreamReader(StreamRep, EncodeurTexte)
    Console.WriteLine("\r\nResponse stream received.")
    Dim Buffer(256) As Char
    ' Reads 256 characters at a time.
    ChaineRetour = ""
    While (Not readStream.EndOfStream)
    ' Dumps the 256 characters on a string And displays the string to the console.
    Dim NbLus = readStream.Read(Buffer, 0, 256)
    ChaineRetour &= New String(Buffer, 0, NbLus)
    End While
    readStream.Close()
    StreamRep.Close()

    Return ChaineRetour
    End Function

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

Discussions similaires

  1. Encodage encmap iso-8859-15.enc introuvable
    Par djibril dans le forum Administration système
    Réponses: 0
    Dernier message: 25/08/2011, 09h35
  2. Encodage : Conversion UTF-8 vers ISO-8859-?
    Par polo54 dans le forum Général Java
    Réponses: 6
    Dernier message: 26/06/2007, 19h10
  3. encodage UTF-8 vers ISO-8859-1
    Par taouja dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 13/04/2007, 11h03
  4. PHP + encodage grec ISO-8859-7
    Par bubble_gum dans le forum Langage
    Réponses: 1
    Dernier message: 20/10/2006, 14h24
  5. Réponses: 15
    Dernier message: 24/02/2006, 14h17

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