利用.net框架提供的 webclient类 和 webrequest类,我们可以很轻易地得到给定url地址的源代码,很简单,以下是c#的完整的例子.
查看例子
getpagehtml.aspx
<%@ page language="c#" validaterequest = "false" codebehind="getpagehtml.aspx.cs"
autoeventwireup="false" inherits="emeng.exam.getpagehtml" %>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
<html>
<head>
<title>得到网页源代码</title>
<meta name="generator" content="microsoft visual studio 7.0">
<meta name="code_language" content="c#">
<meta name="vs_defaultclientscript" content="javascript">
<meta name="vs_targetschema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body ms_positioning="gridlayout">
<form id="as.netbuffer" method="post" runat="server">
<div align="center" style="font-weight: bold">得到任意网页源代码</div>
<asp:textbox id="urltext" runat="server" width="400px">http://do.net.aspx.cc/content.aspx
</asp:textbox>
<asp:button id="webclientbutton" runat="server" text="用webclient得到"></asp:button>
<asp:button id="webrequestbutton" runat="server" text="用webrequest得到"></asp:button>
<br>
<asp:textbox id="contenthtml" runat="server" width="100%" height="360px" textmode="multiline">
</asp:textbox>
</form>
</body>
</html>
getpagehtml.aspx.cs
using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
using system.io;
using system.net;
using system.text;
namespace emeng.exam
{
/// <summary>
/// getpagehtml 的摘要说明。
/// </summary>
public class getpagehtml : system.web.ui.page
{
protected system.web.ui.webcontrols.button webclientbutton;
protected system.web.ui.webcontrols.button webrequestbutton;
protected system.web.ui.webcontrols.textbox contenthtml;
protected system.web.ui.webcontrols.textbox urltext;
private string pageurl = "";
private void page_load(object sender, system.eventargs e)
{}
#region web form designer generated code
override protected void oninit(eventargs e)
{
initializecomponent();
base.oninit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void initializecomponent()
{
this.webclientbutton.click += new system.eventhandler(this.webclientbutton_click);
this.webrequestbutton.click += new system.eventhandler(this.webrequestbutton_click);
this.load += new system.eventhandler(this.page_load);
}
#endregion
private void webclientbutton_click(object sender, system.eventargs e)
{
pageurl = urltext.text;
webclient wc = new webclient();
wc.credentials = credentialcache.defaultcredentials;
///方法一:
byte[] pagedata = wc.downloaddata(pageurl);
contenthtml.text = encoding.default.getstring(pagedata);
/// 方法二:
/// ***************代码开始**********
/// stream resstream = wc.openread(pageurl);
/// streamreader sr = new streamreader(resstream,system.text.encoding.default);
/// contenthtml.text = sr.readtoend();
/// resstream.close();
/// **************代码结束********
///
wc.dispose();
}
private void webrequestbutton_click(object sender, system.eventargs e)
{
pageurl = urltext.text;
webrequest request = webrequest.create(pageurl);
webresponse response = request.getresponse();
stream resstream = response.getresponsestream();
streamreader sr = new streamreader(resstream, system.text.encoding.default);
contenthtml.text = sr.readtoend();
resstream.close();
sr.close();
}
}
}
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器