System.Net.WebRequest rq = System.Net.WebRequest.Create(url);
url地址带中文比如 http://www.aa.com/test.asp?name=安定法
WebRequest 应该是 发送 utf8的请求吧,而他那边是用gb2312接收的,那么会导致他那边的querystring接收的是乱码,怎么解决啊??各位大虾。
url地址带中文比如 http://www.aa.com/test.asp?name=安定法
WebRequest 应该是 发送 utf8的请求吧,而他那边是用gb2312接收的,那么会导致他那边的querystring接收的是乱码,怎么解决啊??各位大虾。
解决方案 »
- C# winform
- ASPX页面中如何实现可填写的表格TABLE?
- 遍历数据表中的某一字段
- "该控件不支持透明的背景色"是怎么回事?
- 请教各位在C#中有没有比Split效率更高的函数,如果自己写循环函数效率会不会更高些,有者方面经验的兄弟们请指教啊
- 接口问题
- 打印的时候如何设定某段字符为竖打
- 一个说难不难说简单不简单的问题:怎样在程序里对WORD页眉进行操作
- 使用SqlCommand.ExecuteReader的一个很大的问题!!!
- 使用C#的WEB编程,请问:如何获取多个checkbox的值并删除掉?谢谢!
- DataSet绑定时的问题,各位高手帮帮忙~~
- 请问如何在<iframe>中动态加入链接
protected string UrlEncode(string url)
{
byte[] bs=Encoding.GetEncoding("GB2312").GetBytes(url);
StringBuilder sb=new StringBuilder();
for(int i=0;i<bs.Length;i++)
{
if(bs[i]<128)
sb.Append((char)bs[i]);
else
{
sb.Append("%"+bs[i++].ToString("x").PadLeft(2,'0'));
sb.Append("%"+bs[i].ToString("x").PadLeft(2,'0'));
}
}
return sb.ToString();
}
发送时候用该函数把url编码一下。
Byte[] byte1 = encoding.GetBytes(XMLDoc.OuterXml);
WebRequest HttpWReq = WebRequest.Create(InterfaceURL);
HttpWReq.ContentType = "text/xml";
HttpWReq.ContentLength = XMLDoc.OuterXml.Length;
HttpWReq.Method = "POST";
System.IO.Stream StreamData = HttpWReq.GetRequestStream();
StreamData.Write(byte1,0,byte1.Length);
StreamData.Close();
WebResponse HttpWRes = HttpWReq.GetResponse();
System.IO.Stream receiveStream = HttpWRes.GetResponseStream();
Byte[] byte1 = System.Text.Encoding.GetEncoding("GB2312").GetBytes("name=...");
HttpWReq.ContentType = "application/x-www-form-urlencoded";
HttpWReq.ContentLength = byte1.Length;//XMLDoc.OuterXml.Length;
HttpWReq.Method = "POST";
System.IO.Stream StreamData = HttpWReq.GetRequestStream();
StreamData.Write(byte1,0,byte1.Length);
StreamData.Close();
WebResponse HttpWRes = HttpWReq.GetResponse();
System.IO.Stream receiveStream = HttpWRes.GetResponseStream();
参看
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpref/html/frlrfsystemwebhttputilityclassurlencodetopic3.htm
例子:
发送和读取时都要用相同的编码方式才行
这是发送:
postData = "msg=xxxx";
byte[] data = encoding.GetBytes(postData);
Stream myStream = HttpWebRequest.GetRequestStream();
myStream.Write(data, 0, data.Length);读取:
Stream stream = HttpWebResponse.GetResponseStream();
sHtml = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();
现成的不用,还那么麻烦