• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET技巧:请求网址并解析返回的html

ASP.NET技巧:请求网址并解析返回的html

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了html5 asp.net,html asp.net,asp.net,asp net培训,asp和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

  目的,把远程服务器传回的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
      &n

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • asp.net动态生成HTML表单的方法
  • 解读ASP.NET 5 & MVC6系列教程(17):MVC中的其他新特性
  • 解读ASP.NET 5 & MVC6系列教程(16):自定义View视图文件查找逻辑
  • 解读ASP.NET 5 & MVC6系列教程(15):MvcOptions配置
  • 解读ASP.NET 5 & MVC6系列教程(14):View Component
  • 解读ASP.NET 5 & MVC6系列教程(13):TagHelper
  • 解读ASP.NET 5 & MVC6系列教程(12):基于Lamda表达式的强类型Routing实现
  • 解读ASP.NET 5 & MVC6系列教程(11):Routing路由
  • 解读ASP.NET 5 & MVC6系列教程(10):Controller与Action
  • 解读ASP.NET 5 & MVC6系列教程(9):日志框架

相关文章

  • 2017-05-11C# 定义常量 两种实现方法
  • 2017-05-11js获取.aspx页面里面的服务器控件和.ascx中的服务器控件值
  • 2017-05-11ASP.NET中DataTable与DataSet之间的转换示例
  • 2017-05-11ADO.NET 连接数据库字符串小结(Oracle、SqlServer、Access、ODBC)
  • 2017-05-11http调用webservice操作httprequest、httpresponse示例
  • 2018-08-20.NET C#支付宝条码支付接口详解
  • 2017-05-11ASP.NET显示渐变图片实现方法
  • 2017-05-11ASP.NET MVC的Localization本地化多语言支持
  • 2017-05-11如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
  • 2018-08-20.net core利用orm如何操作mysql数据库详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 初识ASP.NET Mvc5+EF7的奇妙之旅
    • ADO调用分页查询存储过程的实例讲解
    • 详解ABP框架的参数有效性验证和权限验证
    • ASP.NET笔记之 Request 、Response 与Server的使用
    • 让Silverlight 2.0动画动起来Making Silverlight 2.0 animation Start(不能运动原因)
    • asp.net AJAX实现无刷新获得数据
    • 《解剖PetShop》之一:PetShop的系统架构设计
    • asp.net TreeView与XML三步生成列表树
    • ASP.NET开发中经常用到10款工具软件介绍
    • 关于c#连接ftp进行上传下载实现原理及代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有