`
flon
  • 浏览: 12338 次
文章分类
社区版块
存档分类
最新评论

自动编码获取页面html代码

 
阅读更多

/// <summary>
///获取http流字符串
/// </summary>
/// <param name="Url"></param>
/// <returns></returns>
public static string GetHttpData(string Url)
{

/// <summary>
///获取http流字符串
/// </summary>
/// <param name="Url"></param>
/// <returns></returns>
public static string GetHttpData(string Url)
{


string code = DecodeData(Url);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Timeout = 30000;
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = code != string.Empty ? Encoding.GetEncoding(code.ToUpper()) : Encoding.Default;
StreamReader streamReader = new StreamReader(streamReceive, encoding);
string strResult = streamReader.ReadToEnd();
streamReader.Close();
streamReader.Dispose();

return strResult;


}
private static string DecodeData(string Url)
{
WebRequest r = WebRequest.Create(Url);
WebResponse w = r.GetResponse();
//
// first see if content length header has charset = calue
//
String charset = string.Empty;
String ctype = w.Headers["content-type"];
if (ctype != null)
{
int ind = ctype.IndexOf("charset=");
if (ind != -1)
{
charset = ctype.Substring(ind + 8);
}
}

// save data to a memorystream
MemoryStream rawdata = new MemoryStream();
byte[] buffer = new byte[1024];
Stream rs = w.GetResponseStream();
int read = rs.Read(buffer, 0, buffer.Length);
while (read > 0)
{
rawdata.Write(buffer, 0, read);
read = rs.Read(buffer, 0, buffer.Length);
}

rs.Close();

//
// if ContentType is null, or did not contain charset, we search in body
//
if (charset == null)
{
MemoryStream ms = rawdata;
ms.Seek(0, SeekOrigin.Begin);

StreamReader srr = new StreamReader(ms, Encoding.ASCII);
String meta = srr.ReadToEnd();

if (meta != null)
{
int start_ind = meta.IndexOf("charset=");
int end_ind = -1;
if (start_ind != -1)
{
end_ind = meta.IndexOf("/"", start_ind);
if (end_ind != -1)
{
int start = start_ind + 8;
charset = meta.Substring(start, end_ind - start + 1);
charset = charset.TrimEnd(new Char[] { '>', '"' });
}
}
}
}
return charset.ToString();
}


string code = DecodeData(Url);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Timeout = 30000;
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = code != string.Empty ? Encoding.GetEncoding(code.ToUpper()) : Encoding.Default;
StreamReader streamReader = new StreamReader(streamReceive, encoding);
string strResult = streamReader.ReadToEnd();
streamReader.Close();
streamReader.Dispose();

return strResult;


}
private static string DecodeData(string Url)
{
WebRequest r = WebRequest.Create(Url);
WebResponse w = r.GetResponse();
//
// first see if content length header has charset = calue
//
String charset = string.Empty;
String ctype = w.Headers["content-type"];
if (ctype != null)
{
int ind = ctype.IndexOf("charset=");
if (ind != -1)
{
charset = ctype.Substring(ind + 8);
}
}

// save data to a memorystream
MemoryStream rawdata = new MemoryStream();
byte[] buffer = new byte[1024];
Stream rs = w.GetResponseStream();
int read = rs.Read(buffer, 0, buffer.Length);
while (read > 0)
{
rawdata.Write(buffer, 0, read);
read = rs.Read(buffer, 0, buffer.Length);
}

rs.Close();

//
// if ContentType is null, or did not contain charset, we search in body
//
if (charset == null)
{
MemoryStream ms = rawdata;
ms.Seek(0, SeekOrigin.Begin);

StreamReader srr = new StreamReader(ms, Encoding.ASCII);
String meta = srr.ReadToEnd();

if (meta != null)
{
int start_ind = meta.IndexOf("charset=");
int end_ind = -1;
if (start_ind != -1)
{
end_ind = meta.IndexOf("/"", start_ind);
if (end_ind != -1)
{
int start = start_ind + 8;
charset = meta.Substring(start, end_ind - start + 1);
charset = charset.TrimEnd(new Char[] { '>', '"' });
}
}
}
}
return charset.ToString();
}

分享到:
评论

相关推荐

    asp.net 网页编码自动识别代码

    class Program { // 获取网页的HTML内容,根据网页的charset自动判断Encoding static string GetHtml(string url) { return GetHtml(url, null); } // 获取网页的HTML内容,指定Encoding static string GetHtml...

    JavaScript完全自学宝典 源代码

    \ajaxmodel\amel\html\autoRefresh.jsp 自动刷新网页的客户端页面。 \ajaxmodel\amel\html\processBar.jsp 显示进度条的客户端页面。 \ajaxmodel\src\bonze\UserValServlet.java 完成验证的服务器端。 \...

    玩转模板--自动代码生成工程

    工程自动获取和封装用户自定义参数以及数据库表信息,并通过模板配置文件将生成代码文件直接输出到应用工程目录下,达到从数据库表到页面增删改查过程代码一键生成. 工程提供所有源码,包括第三方jar包也附带源码包 ...

    风越ASP代码生成器2.8

    页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件...

    风越.Net代码生成器 [FireCode Creator] V1.3 精简版

    页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件...

    风越ASP代码生成器FireAspCreatorv2.9.rar

    《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架,基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索页面。通过界面模板与代码模板管理功能,可自定义...

    风越ASP代码生成器 试用版

    [FireAsp Creator]》是一款采用.Net FrameWork2.0框架,基于Microsoft SQL Server及Microsoft Access数据库的ASP代码生成软件,可快速建立数据信息的:添加、编辑、列表、查看、搜索、管理页面。  1、支持Microsoft...

    helper.rar

    提供一个网页取色的工具,任意页面均可使用,方便大家在开发过程中能精准获取某元素的颜色值,再也不用截图后再通过Photoshop取色了 编码规范检测 对当前网页进行Javascript、CSS、HTML编码规范的检测,包括文件是否...

    风越ASP代码生成器 [FireAsp Creator]

    支持正则表达式  正则表达式测试器(可设置、保存常用正则表达式)  获取按键值  网页隐藏资源下载,可下载无法直接得到URL的SWF、图片、音乐等资源 ★  获取汉字的拼音、部首、笔画数、五笔编码等...

    风越ASP代码生成器 2.4

    《风越ASP代码生成器 [FireAsp Creator]》是一款采用.Net FrameWork2.0框架,基于Microsoft SQL Server及Microsoft Access数据库的ASP代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索页面。...

    风越.net代码生成器v2.9

    页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件...

    《javaScrip开发技术大全》源代码

    第2章(\代码\第02章) • sample01.htm 将JavaScript代码插入在标签与标签之间 • sample02.htm 将JavaScript代码放在了标签与标签之间 • sample03.htm JavaScript与HTML混合执行 • ...

    精易模块[源码] V5.15

    3,网页访问_对象()增加一个参数,用来保存网页返回状态代码。 4、改善(字节集_取左边|取右边|取中间)与未公开子程序重复,改名为 字节集_寻找取左|字节集_寻找取右|字节集_寻找取中,并修正BUG。 5、公开子程序...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ASPNETValidator/CompareCheck.aspx 数据类型检查 ASPNETValidator/CompareValue...

    Whtml:一种前端自动化框架,让您更加快速的编写传统HTML页面

    网址 一款让您用更加丝滑更符合组件化思想的方式来编写传统前端HTML页面 ...是否想过省去每次写入css3时需要手动去加浏览器初始化的烦恼等,是否不想让自己辛勤编码的结果被别人轻而易举的获取到。是否重

    JAVA上百实例源码以及开源项目源代码

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    编译的 HTML 帮助文件 (.chm) DHTML手册

    lastModified 获取页面上次修改的日期,若页面提供的话。 linkColor 设置或获取对象文档链接的颜色。 parentWindow 获取容器对象所在窗口的引用。 protocol 设置或获取 URL 的协议部分。 readyState 获取表明...

    电子商务商城网站代码

    在用户选购好商品去结账时,根据结账页面的“本单积分支付额度:XX~XXX”给出的范围,将您想要支付的积分数额填写在“商品支付积分合计:”栏中,订单生成时会自动减少相应的支付金额。积分不可以购买非积分类商品...

    editplus 代码编辑器html c++ jsp css

    几百个网页中都有下面一段代码: 我想把它们都去掉,可是找了很多search & replace的软件,都是只能对“一行”进行操作。 EditPlus 打开几百个网页文件还是比较顺畅的,所以完全可以胜任这个工作。 具体解决方法,在...

Global site tag (gtag.js) - Google Analytics