使用WebRequest发送请求以及发送时的编码问题

我是想用这种方法向一个用jsp写的短信平台传递参数。我用的是如下方法
System.Uri uri = new System.Uri(str,true);
System.Net.WebRequest wrq= WebRequest.CreateDefault(uri);
WebResponse wrs=wrq.GetResponse();
但是每次传过去的内容都是乱码,那位老兄有处理办法?

--------------------------------
Post方式:
WebRequest req = WebRequest.Create("http://expert.csdn.net/Expert/topic/1581/1581934.xml");

req.Method = "POST";

byte[] postData = System.Text.Encoding.GetEncoding("gb2312").GetBytes( "?temp=.1063959" );//Post的数据

req.ContentLength = postData.Length;
Stream postStream = req.GetRequestStream();
postStream.Write(postData, 0, postData.Length);
postStream.Close();
WebResponse res = req.GetResponse();

System.Text.Encoding resEncoding = System.Text.Encoding.GetEncoding("gb2312");//接收的编码
StreamReader reader = new StreamReader( res.GetResponseStream(),resEncoding );

string html = reader.ReadToEnd(); //接收的Html

reader.Close();
res.Close();

-------------------------------

你试试在IE窗口上能不能用QueryString的方式打开该页面,如果可以,那么你使用GET方式:

string url = "http://expert.csdn.net/Expert/topic/1581/1581934.jsp?mobile=13054859624,13965895647&content"+HttpUtility.UrlEncode("内容",System.Encoding.GetEncoding("gb2312"));

WebRequest req = WebRequest.Create(url);

req.Method = "GET";
WebResponse res = req.GetResponse();

System.Text.Encoding resEncoding = System.Text.Encoding.GetEncoding("gb2312");//接收的编码
StreamReader reader = new StreamReader( res.GetResponseStream(),resEncoding );

string html = reader.ReadToEnd(); //接收的Html

reader.Close();
res.Close();

Published At
Categories with Web编程
Tagged with
comments powered by Disqus