【发布时间】:2015-10-03 11:00:39
【问题描述】:
当我使用 Webclient 发送请求时,我的请求字符串被转换为????
我设置了编码,但它不起作用。
这是我的代码:
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);
}
用Wireshark嗅探,请求字符串转换为??? :
POST / HTTP/1.1
授权:基本 YWRtaW46MTIzNDU2
命令: setPersons12
内容类型:应用程序/json;字符集=utf-8
主机:192.168.1.21:8080
内容长度:23
期望: 100 次继续
连接:保持活动状态code=????;field2=value2HTTP/1.1 200 OK
内容长度:10
内容类型:应用程序/json;字符集=UTF-8
【问题讨论】: