[高级货]请问怎么获取一个HTTP地址如:http://www.sina.com/a.html里的HTML内容
如题。最好不要用WebBrowser控件 问题点数:100、回复次数:31Top
1 楼csShooter(Sharp Shooter)回复于 2006-10-18 15:49:32 得分 0
WebClient.OpenReadTop
2 楼woshibai110()回复于 2006-10-18 15:51:34 得分 0
upTop
3 楼lbqlbq(流星)回复于 2006-10-18 15:52:03 得分 5
HttpWebRequest,HttpWebResponseTop
4 楼Dlandiao(D蓝调)回复于 2006-10-18 15:53:03 得分 0
楼上地XD能不能详细点呢?
Top
5 楼lbqlbq(流星)回复于 2006-10-18 16:06:58 得分 5
你到MSDN上搜索一下,有例子Top
6 楼dyw31415926(守护)回复于 2006-10-18 16:16:22 得分 30
既然有这么多朋友问这问题,我就写了一个小程序,希望大家能理解,拖个button1 listBox1
在button事件里写代码,参考代码如下:(不要忘了加引用哦)
using System.Net;
using System.IO;
private void button1_Click(object sender, EventArgs e)
{
WebRequest request = WebRequest.Create(
"http://www.google.com");
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = "";
string strTemp;
while ( (strTemp = reader .ReadLine ()) != null )
{
listBox1.Items.Add(strTemp );
}
reader.Close();
response.Close();
}Top
7 楼miqier(米琪儿)回复于 2006-10-18 16:20:45 得分 5
哈哈,人气很旺,来晚了。楼上的就可以了。Top
8 楼yan63(silence like a cancer grows)回复于 2006-10-18 16:20:45 得分 20
同意csShooter(Sharp Shooter)
参考:http://msdn2.microsoft.com/en-us/library/781fwaz8.aspx#Mtps_DropDownFilterText
// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
// Download home page data.
Console.WriteLine("Accessing {0} ...", uriString);
// Open a stream to point to the data stream coming from the Web resource.
Stream myStream = myWebClient.OpenRead(uriString);
Console.WriteLine("\nDisplaying Data :\n");
StreamReader sr = new StreamReader(myStream);
Console.WriteLine(sr.ReadToEnd());
// Close the stream.
myStream.Close();
Top
9 楼web_sharp()回复于 2006-10-18 16:22:47 得分 0
努力学习中.Top
10 楼jc15271149(奶皮儿)回复于 2006-10-18 16:24:40 得分 10
HttpWebRequest HttpWReq = (HttpWebRequest)WebRequest.Create(WebPath);
HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse();
Stream str = HttpWResp.GetResponseStream();Top
11 楼xingyaohua(邢跃华)回复于 2006-10-18 16:26:27 得分 0
upTop
12 楼Dlandiao(D蓝调)回复于 2006-10-18 16:33:58 得分 0
TO: dyw31415926(dyw31415926)
经过测试,上面的方法显示的都是乱码,这又如何解决呢??Top
13 楼zerg318()回复于 2006-10-18 16:35:26 得分 0
啊Top
14 楼Dlandiao(D蓝调)回复于 2006-10-18 16:37:44 得分 0
包括yan63()的方法,也是乱码!Top
15 楼yan63(silence like a cancer grows)回复于 2006-10-18 16:39:25 得分 5
需要确认一下网页的字符编码,如果同lz本机的默认编码不同,会有软码
....
Stream dataStream = response.GetResponseStream();
Encoding webEncode = Encoding.UTF8;
StreamReader reader = new StreamReader(dataStream, webEncode);
.....
Top
16 楼dyw31415926(守护)回复于 2006-10-18 16:40:28 得分 0
TO: dyw31415926(dyw31415926)
经过测试,上面的方法显示的都是乱码,这又如何解决呢??
------------------------------------------------------------------
请问您测试的是哪个网址,可否贴出来看看.
楼主应该先打开个新ie窗口,将网址输进去,回车要是本来出来的就是乱码,那出现乱码才是正常的啊!!!!!!!!!但这并不意味着是错的,因为这一般是一些二进制的信息, 你要知道它的格式,经过处理后, 才可以解析出内容.Top
17 楼gezichong(鸽子虫)回复于 2006-10-18 16:44:11 得分 0
markTop
18 楼Dlandiao(D蓝调)回复于 2006-10-18 16:47:07 得分 0
是google的Top
19 楼Dlandiao(D蓝调)回复于 2006-10-18 16:53:22 得分 0
Encoding webEncode = Encoding.UTF8;
StreamReader reader = new StreamReader(dataStream, webEncode);
这样做以后还是乱,OMG!!Top
20 楼Dlandiao(D蓝调)回复于 2006-10-18 17:02:41 得分 0
yan63() 兄,非常认真的试了你的方法,若是把网页保存成UTF-8代码,那就可以了。
问题是我如何知道请求网页的编码呢??Top
21 楼yan63(silence like a cancer grows)回复于 2006-10-18 17:42:12 得分 0
第一反应是<meta http-equiv="content-type" content="text/html; charset=UTF-8">
后来觉得这是蛋在鸡之先的回答,而且部分网页也是没有这个,使用它服务器上的默认编码...可能像google抓取网页的时候也是比特流,正确显示的职能交由客户的ie设置。Top
22 楼Dlandiao(D蓝调)回复于 2006-10-18 17:45:12 得分 0
谁来回答下我的问题呢? 如何获取请求网页的编码呢??Top
23 楼rikee19810706()回复于 2006-10-18 19:23:13 得分 0
markTop
24 楼blackhero(黑侠客)回复于 2006-10-18 19:46:37 得分 10
小偷程序http://community.csdn.net/Expert/topic/4958/4958401.xml?temp=.3348963Top
25 楼myminimouse(坚决不用baidu)回复于 2006-10-19 08:28:03 得分 0
c#:
http://topic.csdn.net/t/20050531/15/4048803.html
http://blog.tom.com/blog/read.php?bloggerid=91109&blogid=9937
c/c++:
http://www.blogcn.com/user59/vilmali/blog/28601505.htmlTop
26 楼myminimouse(坚决不用baidu)回复于 2006-10-19 08:32:39 得分 10
不好意思发错了
lz可以看这个:
http://community.csdn.net/Expert/topic/5076/5076413.xml?temp=.3574488Top
27 楼test33(隐姓埋名)回复于 2006-10-19 09:19:25 得分 0
学习。。。Top
28 楼Dlandiao(D蓝调)回复于 2006-10-19 10:00:41 得分 0
Content-Type键只返回“text/html”,而没有编码。Top
29 楼wang8712(Andy)回复于 2006-10-19 10:30:22 得分 0
using System.Net;
using System.IO;
private void button1_Click(object sender, EventArgs e)
{
WebRequest request = WebRequest.Create(
"http://www.google.com");
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = "";
string strTemp;
while ( (strTemp = reader .ReadLine ()) != null )
{
listBox1.Items.Add(strTemp );
}
reader.Close();
response.Close();
}Top
30 楼Dlandiao(D蓝调)回复于 2006-10-19 10:33:38 得分 0
老大,谢谢你再贴一遍,不过现在的问题是编码了。看来我得闭贴了。Top
31 楼Dlandiao(D蓝调)回复于 2006-10-19 10:43:03 得分 0
结贴喽Top




