Hesam Forootan
Hesam Forootan

Reputation: 21

WebClient Encoding

When I'm sending a request with Webclient, my request string is converted to ????

I set the Encoding, but it's not working.

This is my Code:

using (var client = new WebClient(){ Encoding = Encoding.UTF8 })
{
    client.Encoding = ASCIIEncoding.UTF8;
    client.Headers[HttpRequestHeader.ContentType] = "application/octet-stream";
    client.Encoding = Encoding.ASCII;
    client.Headers.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
    client.Headers.Add("Content-Encoding: UTF-8");

    string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes("admin" + ":" + "123456"));
    client.Headers[HttpRequestHeader.Authorization] = string.Format("Basic {0}", credentials);
    client.Headers.Add("command:12");

    byte[] bret = client.UploadData("http://192.168.1.1", "POST",
                  System.Text.Encoding.ASCII.GetBytes("code=سلام;field2=value2"));

    string sret = System.Text.Encoding.ASCII.GetString(bret);
    MessageBox.Show(sret);
}

sniffing with Wireshark, the request string convert to ??? :

POST / HTTP/1.1
Authorization: Basic YWRtaW46MTIzNDU2
command: setPersons12
Content-Type: application/json; charset=utf-8
Host: 192.168.1.21:8080
Content-Length: 23
Expect: 100-continue
Connection: Keep-Alive

code=????;field2=value2HTTP/1.1 200 OK
Content-Length: 10
Content-Type: application/json; charset=UTF-8

Upvotes: 2

Views: 4145

Answers (1)

hossein andarkhora
hossein andarkhora

Reputation: 798

try with this code , i hope be useful

    using (var client = new WebClient())
        {
            client.Encoding = Encoding.UTF8;
            ....

        }

Upvotes: 3

Related Questions