读书人

有关HttpWebRequest的有关问题。分不够

发布时间: 2012-02-03 22:02:47 作者: rapoo

有关HttpWebRequest的问题。分不够还可以加!看谁能解决!
http请求返回来的结果不正常。结果没能返回新闻列表,返回的结果是“您要查找的文件不存在!”。
应该是服务端根据channel_name,查找相应的列表文件,但是服务端没能正常解析URL。
怎么办?????

程序代码如下:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create( "http://hkstock.eastmoney.com/channel_third.asp?channel_name=港股新闻&page=1 ");
request.Timeout = 60000;
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, System.Text.Encoding.GetEncoding( "GB2312 "));
string buffer = " ";
string line = " ";
while ((line = reader.ReadLine()) != null)
{
buffer += line + "\r\n ";
}
reader.Close();
stream.Close();
response.Close();

[解决办法]
Stream stream = response.GetResponseStream();

StreamReader reader = new StreamReader(stream, System.Text.Encoding.GetEncoding( "GB2312 "));

获取文件是不是应该是个路径,没见你有类似路径的代码。

又或者根据URL传入的参数来判断怎么获取文件,在你的代码里没有发现参数的处理。

这个错误应该是文件路径有误,你再查查。
[解决办法]
WebRequest wrq = WebRequest.Create( "http://hkstock.eastmoney.com/channel_third.asp?channel_name=港股新闻&page=1 ");
WebResponse wrs = wrq.GetResponse();
Stream strm = wrs.GetResponseStream();

StreamReader sr = new StreamReader(strm);

string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}

strm.Close();
[解决办法]
System.Web.HttpUtility.UrlEncode( "http://hkstock.eastmoney.com/channel_third.asp?channel_name=港股新闻&page=1 ");
[解决办法]
WebRequest wrq = WebRequest.Create( "http://hkstock.eastmoney.com/channel_third.asp?channel_name=港股新闻&page=1 ");
WebResponse wrs = wrq.GetResponse();
Stream strm = wrs.GetResponseStream();

StreamReader sr = new StreamReader(strm);

string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}

strm.Close();
================================================
同意这个。
[解决办法]
应该是 "港股新闻 "这几个汉字未能正确编码
[解决办法]
楼主 你系统的问题吧?

你的代码在我这里一点问题也没有......
[解决办法]
应该是中文的问题 "港股新闻 "
[解决办法]
使用URL传递中文,需要进行URL编码
[解决办法]
中文啊中文
[解决办法]
你的程序在我这里编译运行没有问题..........我直接copy的......
[解决办法]
文字
在web.config修改encoding= "gb2312 "


[解决办法]
http://hkstock.eastmoney.com/channel_third.asp?channel_name=港股新&page=1

你将 "港股新闻 "去掉一个字,然后把链接复制到浏览器地址栏访问一下就知道了,页面提示信息就是 "您要查找的文件不存在 ",明显是没能根据栏目名称得到栏目的问题,这个提示信息纯粹就是在误导人
[解决办法]
如果真的是文件不存在,应该是 http 404错误
[解决办法]
汉字编码有多种
试试
System.Web.HttpUtility.UrlEncode( "中文 ", System.Text.UnicodeEncoding.GetEncoding( "GB2312 ")).ToUpper()
System.Web.HttpUtility.UrlEncode( "中文 ", System.Text.Encoding.GetEncoding( "GB2312 ")).ToUpper()
System.Web.HttpUtility.UrlEncode( "中文 ", System.Text.Encoding.UTF8.ToUpper()

总有一种是合适的


[解决办法]
来晚了... 中文要先编码
[解决办法]
这个正好有用呢

读书人网 >C#

热点推荐