HttpWebRequest 中文乱码
时间: 2023-07-09 10:54:18 浏览: 127
在使用 HttpWebRequest 发送中文字符时,可能会出现乱码问题。这是因为默认情况下,HttpWebRequest 使用的是 ASCII 编码,而中文字符在 ASCII 编码中是无法表示的。解决方法是将请求编码设置为 UTF-8,这样就能正确地发送中文字符了。可以使用以下代码设置请求编码:
```
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.Headers.Add("Accept-Encoding", "gzip, deflate");
request.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
request.Headers.Add("Cache-Control", "no-cache");
request.Headers.Add("Pragma", "no-cache");
request.Timeout = 30000;
request.KeepAlive = true;
string postData = "中文字符";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentLength = byteArray.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(byteArray, 0, byteArray.Length);
requestStream.Close();
```
其中,将 postData 转为 UTF-8 编码的字节数组,并设置请求的 ContentLength 属性为字节数组的长度。这样就可以正确地发送中文字符了。
阅读全文