关于HttpWebRequest的一个问题,请大家来帮忙(在线等)
在C#的一个类模块中,我要取得一个网址的返回数据,但输入的地方出现中文。结果返回值就不一样了。
如果我在IE上输入地址:www.abc.com/LOGIN.asp?Password=1234&NAME=ABC
网页上显示:OK 成功!
MessageUrl函数数返回:OK 成功!
如果我在IE上输入地址:www.abc.com/LOGIN.asp?MYID=1234&NAME=张三
那么网页上显示:OK 成功!
但是MessageUrl函数数返回:FALSE 失败!
我不知道是不是因为HttpWebRequest调用网址的时候是不是有问题,反正有中文就会不行。
NAME这个字段一定会有中文,而且我没办法知道网址得到的到底是什么值,所以做不到取值验证。
照说网址就算有中文也是一样,但为什么得到结果就是不一样,难道在用HttpWebRequest输入网址时一定要改个编码。搞不懂。下面是代码,请大家帮忙想想。
internal static string MessageUrl(string sendurl)
{
string lcUrl =sendurl;
// *** Establish the request
HttpWebRequest loHttp = (HttpWebRequest) WebRequest.Create(lcUrl);
loHttp.Method = "GET";
loHttp.ContentType="application/x-www-form-urlencoded";
// *** Set properties
loHttp.Timeout = 10000; // 10 secs
// *** Retrieve request info headers
HttpWebResponse loWebResponse = (HttpWebResponse) loHttp.GetResponse();
// Windows default Code Page
Encoding enc = Encoding.GetEncoding("gb2312");
StreamReader loResponseStream = new StreamReader(loWebResponse.GetResponseStream(),enc);
string lcHtml = loResponseStream.ReadToEnd();
//Console.WriteLine(lcHtml);
loWebResponse.Close();
loResponseStream.Close();
return lcHtml;
}