Reputation: 21
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-Alivecode=????;field2=value2HTTP/1.1 200 OK
Content-Length: 10
Content-Type: application/json; charset=UTF-8
Upvotes: 2
Views: 4145
Reputation: 798
try with this code , i hope be useful
using (var client = new WebClient())
{
client.Encoding = Encoding.UTF8;
....
}
Upvotes: 3