网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.asp.net实现C#代码加亮显示.
.正则学习:组的定义及引用方式.
.下载文件关闭窗体之解决方法.
.ASP.NET 2.0 中 Treeview 的Chec.
.利用ASP.NET的内置功能抵御Web攻.
.从ASP过渡到ASP.net遗留的二十大.
.用GZip压缩和解压.
.如何在页面之间传递数据量较大的.
..net2.0邮件发送代码.
.简单绑定要注意的问题_AX.
.对.NET Framework 反射的反思.
.通过探测邮件服务器进行Email地址.
.结合ASP.NET与JavaScript开发电子.
.Asp.Net中使用水晶报表.
.ASP.NET 2.0 中使用自定义缓存依.
.利用WebClient获取远程数据(仅做.
.在asp.net中为Web用户控件添加属.
.在ASP.NET Atlas中调用Web Servi.
.用于.NET Compact Framework的强.
.使用ASPX输出XML应注意的问题.

请求网址并解析返回的html

发表日期:2006-6-20


目的,把远程服务器传回的Html,解析到类里面,为GridView等提供数据源
1 、向远程服务器Post数据
public int PostData(string url, string data, out string info)
        {

            info = "";
            CookieContainer cc = new CookieContainer();
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            request.CookieContainer = cc;
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            Stream requestStream = request.GetRequestStream();
            byte[] byteArray = Encoding.UTF8.GetBytes(data);
            requestStream.Write(byteArray, 0, byteArray.Length);
            requestStream.Close();
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            Uri responseUri = response.ResponseUri;
            Stream receiveStream = response.GetResponseStream();
            Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
            StreamReader readStream = new StreamReader(receiveStream, encode);
            string result = readStream.ReadToEnd();
            info = result;
            return 0;

        }2、解析返回的html,有省略
 public ClassInfo[] GetClass(string html)
        {

            ArrayList ar = new ArrayList();
            ArrayList arr = new ArrayList();
            string table = "";
            Regex regtable = new Regex(@"(?<=<table.*>).*?(?=</table>)", RegexOptions.Singleline);
            Match ma = regtable.Match(html);
            while (ma.Success)
            {
                if (ma.Value.Trim() != "")
                {
                    arr.Add(HttpUtility.HtmlDecode(ma.Value));
                }
                ma = ma.NextMatch();
            }
            for (int i = 0; i < arr.Count; i++)
            {
                table = arr[i].ToString() + table;
            }


            Regex reg = new Regex(@"(?<=<.*?>).*?(?=<.*?>)", RegexOptions.Singleline);
            Match m = reg.Match(table);


            while (m.Success)
            {
                if (m.Value.Trim() != "")
                {

                    ar.Add(HttpUtility.HtmlDecode(m.Value));
                }
                m = m.NextMatch();
            }


           ClassInfo[] ci = new ClassInfo[classno];
            for (int i = 0; i < classno; i++)
            {
                ci[i] = new ClassInfo();
                ci[i].RegisterDate = (ar[i * 8 + 0]).ToString();

                ci[i].LoginDate = (ar[i * 8 + 1]).ToString();
                ci[i].LogoutDate = (ar[i * 8 + 2]).ToString();
                ci[i].UseMin = ar[i * 8 + 3].ToString();
                ci[i].ClassName = ar[i * 8 + 5].ToString();
                ci[i].ClassType = ar[i * 8 + 6].ToString();
                ci[i].Percent = ar[i * 8 + 7].ToString();

            }

 

            return ci;


        }
3、定义ClassInfo类(课程类),用CodeSmith生成
 public class ClassInfo
    {
        Member Variables#region Member Variables


        protected string _loginDate;
        protected string _logoutDate;
        protected string _registerDate;
        protected string _useMin;
        protected string _className;
        protected string _classType;
        protected string _percent;
        //protected string _nouse;
        #endregion

        Constructors#region Constructors

        public ClassInfo() { }

        public ClassInfo(string loginDate, string logoutDate, string registerDate, string useMin, string className, string classType, string percent)
        {
            this._loginDate = loginDate;
            this._logoutDate = logoutDate;
            this._registerDate = registerDate;
            this._useMin = useMin;
            this._className = className;
            this._classType = classType;
            this._percent = percent;
        }

        #endregion

        Public Properties#region Public Properties
        //        public string NoUse
        //        {
        //            get{return _nouse;}
        //            set{ _nouse= value;}
        //        }

 

        public string LoginDate
        {
            get { return _loginDate; }
            set { _loginDate = value; }
        }

        public string LogoutDate
        {
            get { return _logoutDate; }
            set { _logoutDate = value; }
        }

        public string RegisterDate
        {
            get { return _registerDate; }
            set { _registerDate = value; }
        }

        public string UseMin
        {
            get { return _useMin; }
            set { _useMin = value; }
        }

        public string ClassName
        {
            get { return _className; }
            set
            {
                if (value != null && value.Length > 50)
                    throw new ArgumentOutOfRangeException("Invalid value for ClassName", value, value.ToString());
                _className = value;
            }
        }

        public string ClassType
        {
            get { return _classType; }
            set
            {
                if (value != null && value.Length > 50)
                    throw new ArgumentOutOfRangeException("Invalid value for ClassType", value, value.ToString());
                _classType = value;
            }
        }

        public string Percent
        {
            get { return _percent; }
            set
            {
                if (value != null && value.Length > 50)
                    throw new ArgumentOutOfRangeException("Invalid value for Percent", value, value.ToString());
                _percent = value;
            }
        }

        #endregion
    }

http://bluewater.cnblogs.com/archive/2006/06/19/429720.html

上一篇:数据岛出到Excel最为简易的方法 人气:6307
下一篇:一段比较经典的多线程学习代码 人气:6576
浏览全部GridView的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐