【问题标题】:WebClient EncodingWeb客户端编码
【发布时间】: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

【问题讨论】:

    标签: c# encoding webclient


    【解决方案1】:

    试试这段代码,希望有用

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

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多