C#实现ASP组件:获取网页内容与URL操作详解

需积分: 9 2 下载量 166 浏览量 更新于2024-09-18 收藏 13KB TXT 举报
本文档主要介绍了如何使用C#语言编写ASP(Active Server Pages)组件。ASP是早期Microsoft开发的一种服务器端脚本语言,用于创建动态网页。这里提供的C#代码示例展示了如何构造一个名为`RequestWebPage`的类,用于通过HTTP GET请求从指定URL获取网页内容。这个类主要包括以下几个部分: 1. 引用必要的库:首先,代码引用了`System`, `System.Net`, `System.IO`, 和 `System.Text` 这些基本库,它们在处理网络请求和数据操作时至关重要。 2. 定义类和属性:`RequestWebPage` 类定义了构造函数,一个无参版本和一个带URL参数的版本,以及URL属性。URL属性允许设置和获取请求的网页地址。 3. `GetContent` 方法:这是类的核心功能,接收一个`out`类型的`strContent`参数,用于返回从指定URL获取的网页内容。方法开始时检查URL是否为空,如果为空则抛出异常。接着,通过`WebRequestFactory.Create`方法创建一个`WebRequest`对象,并调用`GetResponse`获取响应。 4. 数据读取与处理:使用`WebResponse`对象的`Stream`属性获取到网络流后,创建一个`Buffer`数组来临时存储接收到的数据。通过`BytesRead`变量跟踪已读取的字节数,然后不断读取数据块并填充到`Buffer`中,直到读取完成。 5. 返回内容:当所有数据读取完毕后,将网页内容转换为字符串(可能涉及编码处理),并通过`strContent`参数返回给调用者。 这个C#组件可以作为ASP.NET Web应用程序的一部分,用于动态获取外部资源或执行简单的数据抓取任务。它展示了基础的网络编程原理,适用于学习C#编程的开发者理解和实践如何通过C#与互联网进行交互。同时,这也是一个基础的RESTful API设计思路,适用于构建轻量级的API服务。然而,需要注意的是,随着现代Web开发技术的发展,许多情况下更倾向于使用HttpClient、HttpClientFactory或者第三方库如RestSharp等来进行更高效、更安全的网络请求。
2009-02-18 上传
鱼鱼asp函数组件(fishasp20090218.dll) 鱼鱼版权所有,非经鱼鱼许可禁止用于商业用途 鱼鱼QQ:260332019 EMAIL:afishofsun@163.com 注意:请先注册鱼鱼asp函数组件,然后才能调用鱼鱼asp组件函数 鱼鱼asp组件注册文件:regdll.bat,鱼鱼asp组件卸载文件:unregdll.bat 鱼鱼asp组件调用示例文件:test.asp(测试文件),db.asp(数据库) 组件文件fishasp20090218.dll,组件名称fishasp20090218,包含类fasp,类fasp中包含下列函数。 组件调用: dim faspobj set faspobj=server.createobject("fishasp20090218.fasp") '创建fasp对象 dim s=faspobj.delpiccontent("sdfsd<") '使用fasp对象调用函数 '------------------------------------- '鱼鱼ASP函数 '鱼鱼版权所有,不可用于商业用途 'QQ:260332019 EMAIL:afishofsun@163.com '函数delpiccontent(str),该函数用来删除字段内容中的图片内容/代码。 '------------------------------------- '天枫ASP class v1.0鱼鱼修改版,集常用asp函数于一体 '天枫版权所有http://www.52515.net 'QQ:76994859 EMAIL:Chenshaobo@gmail.com '所有功能函数名如下: '------------------------------------- '--------字符处理-------------------------- '**************************************************** '函数名:StrLength(str) '作 用:取得字符串长度(汉字为2) '参 数:str ----字符串内容 '返回值:字符串长度 '**************************************************** '**************************************************** '函数名:CutStr(str, strlen) '作 用:字符串长度切割,超过显示省略号 '参 数:str ----字符串内容 ' strlen ------要显示的长度 '返回值:切割后字符串内容 '**************************************************** '--------------系列验证---------------------------- '**************************************************** '函数名:CheckIsEmpty(tstr) '作 用:检查是否为空 '参 数:tstr ----字符串 '返回值:true不为空,false为空 '**************************************************** '**************************************************** '函数名:isInteger(para) '作 用:整数检验 '参 数:tstr ----字符 '返回值:true是整数,false不是整数 '**************************************************** '**************************************************** '函数名:CheckName(str) '作 用:名字字符检验 '参 数:str ----字符串 '返回值:true无误,false有误 '**************************************************** '**************************************************** '函数名:CheckPassword(str) '作 用:密码检验 '参 数:str ----字符串 '返回值:true无误,false有误 '**************************************************** '**************************************************** '函数名:CheckEmail(email) '作 用:邮箱格式检测 '参 数:str ----Email地址 '返回值:true无误,false有误 '**************************************************** '--------------信息提示---------------------------- '**************************************************** '函数名:Alert(msg, goUrl) '作 用:弹出对话框提示 '参 数:msg ----对话框信息 ' gourl ----提示后转向哪里 '返回值:无 '**************************************************** '**************************************************** '函数名:GoBack(str1, str2, isback) '作 用:错误信息提示 '参 数:str1 ----信息提示标题 ' str2 ----信息提示内容 ' isback ----是否显示返回 '返回值:无 '**************************************************** '**************************************************** '函数名:Suc(str1, str2, url) '作 用:成功提示信息 '参 数:str1 ----信息提示标题 ' str2 ----信息提示内容 ' url ----返回地址 '返回值:无 '**************************************************** '--------------安全处理---------------------------- '**************************************************** '函数名:ChkPost() '作 用:禁止站外提交表单 '返回值:true站内提交,flase站外提交 '**************************************************** '**************************************************** '函数名:PSql() '作 用:防止SQL注入 '返回值:为空则无注入,不为空则注入并返回注入的字符 '**************************************************** '**************************************************** '函数名:FiltrateHtmlCode(str) '作 用:防止生成html代码 '参 数:str ----字符串 '**************************************************** '**************************************************** '函数名:HtmlCode(str) '作 用:过滤Html标签 '参 数:str ----字符串 '**************************************************** '**************************************************** '函数名:Replacehtml(tstr) '作 用:清理html '参 数:tstr ----字符串 '**************************************************** '---------------获取客户端和服务端的一些信息------------------- '**************************************************** '函数名:GetIP() '作 用:获取客户端IP地址 '返回值:客户端IP地址 '**************************************************** '**************************************************** '函数名:GetBrowser() '作 用:获取客户端浏览器信息 '返回值:客户端浏览器信息 '**************************************************** '**************************************************** '函数名:GetSystem() '作 用:获取客户端操作系统 '返回值:客户端操作系统 '**************************************************** '**************************************************** '函数名:CUrl() '作 用:获取当前页面URL的函数 '返回值:当前页面URL的函数 '**************************************************** '**************************************************** '函数名:GetExtend(FileName) '作 用:取得文件扩展名 '参 数:filename ----文件名 '**************************************************** '------------------数据库的操作----------------------- '**************************************************** '函数名:conndb(str) '作 用:连接数据库,返回连接对象 '参 数:str---数据库连接串 '返回值:conn打开的连接对象 '**************************************************** '**************************************************** '函数名:creaters() '作 用:创建记录集对象 '参 数: '返回值:rs创建的记录集对象 '**************************************************** '**************************************************** '函数名:CheckExist(conn, table, fieldname, fieldcontent, isblur) '作 用:检测某个表中某个字段是否存在某个内容 '参 数:conn---数据库连接对象 'table ----表名 ' fieldname ----字段名 ' fieldcontent ----字段内容 ' isblur (值为1或0) ----是否模糊匹配 '返回值:false不存在,true存在 '**************************************************** '**************************************************** '函数名:GetNum(conn, table, fieldname, resulttype, args) '作 用:检测某个表某个字段的数量或最大值或最小值 '参 数:conn---连接对象table ----表名 ' fieldname ----字段名 ' resulttype ----还回结果(count/max/min) ' args ----附加参加(order by ...) '返回值:数值 '**************************************************** '**************************************************** '函数:UpdateValue(conn, table, fieldname, fieldtype, fieldvalue, id, url) '作 用:更新表中某字段某内容的值 '参 数:conn--------数据库连接对象 'table ----表名 ' fieldname ----字段名 ' fieldtype ----字段数据类型 ' fieldvalue ----更新后的值 ' id ----id ' url -------更新后转向地址 '返回值:无 '**************************************************** '---------------服务端信息和操作----------------------- '**************************************************** '函数名:GetFolderSize(Folderpath) '作 用:计算某个文件夹的大小 '参 数:FileName ----文件夹路径及文件夹名称 '返回值:数值 '**************************************************** '**************************************************** '函数名:GetFileSize(FileName) '作 用:计算某个文件的大小 '参 数:FileName ----文件路径及文件名 '返回值:数值 '**************************************************** '**************************************************** '函数名:IsObjInstalled(strClassString) '作 用:检查组件是否安装 '参 数:strClassString ----组件名称 '返回值:false不存在,true存在 '**************************************************** '**************************************************** '函数名:SendMail(MailServerAddress, AddRecipient, Subject, Body, Sender, MailFrom) '作 用:用Jmail组件发送邮件 '参 数:ServerAddress ----服务器地址 ' AddRecipient ----收信人地址 ' Subject ----主题 ' Body ----信件内容 ' Sender ----发信人地址 '**************************************************** '**************************************************** '函数名:ResponseCookies(Key, Value, Expires) '作 用:写入COOKIES '参 数:Key ----cookie名 ' value ----cookie值 ' expires ---- cookie过期时间 '**************************************************** '-----------------系列格式化------------------------ '**************************************************** '函数名:FormatSize(dsize) '作 用:大小格式化 '参 数:size ----要格式化的大小 '**************************************************** '**************************************************** '函数名:FormatTime(DateTime, Format) '作 用:时间格式化 '参 数:DateTime ----要格式化的时间 ' Format ----格式的形式 '**************************************************** '----------------------杂项--------------------- '**************************************************** '函数名:Zodiac(birthday) '作 用:取得生消 '参 数:birthday ----生日 '**************************************************** '**************************************************** '函数名:Constellation(birthday) '作 用:取得星座 '参 数:birthday ----生日 '****************************************************