欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

asp.net HttpWebRequest自動(dòng)識(shí)別網(wǎng)頁編碼

 更新時(shí)間:2008年09月10日 01:04:55   作者:  
HttpWebRequest獲取網(wǎng)頁源代碼時(shí)自動(dòng)識(shí)別網(wǎng)頁編碼,通過讀取頁面中的charset和讀取http頭中的編碼信息獲取頁面的編碼,基本可以正確獲取網(wǎng)頁編碼

復(fù)制代碼 代碼如下:

static string GetEncoding(string url)
{
HttpWebRequest request = null;
HttpWebResponse response = null;
StreamReader reader = null;
try
{
request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 20000;
request.AllowAutoRedirect = false;

response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK && response.ContentLength < 1024 * 1024)
{
if (response.ContentEncoding != null && response.ContentEncoding.Equals("gzip", StringComparison.InvariantCultureIgnoreCase))
reader = new StreamReader(new GZipStream(response.GetResponseStream(), CompressionMode.Decompress));
else
reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII);

string html = reader.ReadToEnd();

Regex reg_charset = new Regex(@"charset\b\s*=\s*(?<charset>[^""]*)");
if (reg_charset.IsMatch(html))
{
return reg_charset.Match(html).Groups["charset"].Value;
}
else if (response.CharacterSet != string.Empty)
{
return response.CharacterSet;
}
else
return Encoding.Default.BodyName;
}
}
catch
{
}
finally
{

if (response != null)
{
response.Close();
response = null;
}
if (reader != null)
reader.Close();

if (request != null)
request = null;

}

return Encoding.Default.BodyName;
}

/// <summary>
/// 獲取源代碼
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
static string GetHtml(string url, Encoding encoding)
{
HttpWebRequest request = null;
HttpWebResponse response = null;
StreamReader reader = null;
try
{
request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 20000;
request.AllowAutoRedirect = false;

response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK && response.ContentLength < 1024 * 1024)
{
if (response.ContentEncoding != null && response.ContentEncoding.Equals("gzip", StringComparison.InvariantCultureIgnoreCase))
reader = new StreamReader(new GZipStream(response.GetResponseStream(), CompressionMode.Decompress), encoding);
else
reader = new StreamReader(response.GetResponseStream(), encoding);
string html = reader.ReadToEnd();

return html;
}
}
catch
{
}
finally
{

if (response != null)
{
response.Close();
response = null;
}
if (reader != null)
reader.Close();

if (request != null)
request = null;

}

return string.Empty;
}

相關(guān)文章

  • CheckBox為CheckBoxList實(shí)現(xiàn)全選或全取消選擇(js代碼實(shí)現(xiàn))

    CheckBox為CheckBoxList實(shí)現(xiàn)全選或全取消選擇(js代碼實(shí)現(xiàn))

    在管理商品后臺(tái)是,由于CheckBoxList的選擇太多,用戶需要一個(gè)全選或全取消的功能,這樣操作起來會(huì)提高效率同時(shí)可以減少誤點(diǎn)等,本文將教大家如何實(shí)現(xiàn),有需要的朋友可以參考下,望本文對(duì)你有所幫助
    2013-01-01
  • ASP.NET防范SQL注入式攻擊的方法

    ASP.NET防范SQL注入式攻擊的方法

    所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務(wù)器執(zhí)行惡意的SQL命令,那么在ASP.NET中如何防范SQL注入式攻擊,下文為大家揭曉
    2016-05-05
  • ASP.NET MVC學(xué)習(xí)之NuGet在VS中的運(yùn)用淺談

    ASP.NET MVC學(xué)習(xí)之NuGet在VS中的運(yùn)用淺談

    這篇文章主要給大家介紹了關(guān)于ASP.NET MVC學(xué)習(xí)之NuGet在VS中運(yùn)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • WPF使用AForge調(diào)用攝像頭

    WPF使用AForge調(diào)用攝像頭

    這篇文章介紹了WPF使用AForge調(diào)用攝像頭的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • ADO.NET實(shí)現(xiàn)對(duì)SQL Server數(shù)據(jù)庫的增刪改查示例

    ADO.NET實(shí)現(xiàn)對(duì)SQL Server數(shù)據(jù)庫的增刪改查示例

    本篇文章主要介紹了ADO.NET實(shí)現(xiàn)對(duì)SQL Server數(shù)據(jù)庫的增刪改查示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-01-01
  • ASP.NET WebAPi(selfhost)實(shí)現(xiàn)文件同步或異步上傳

    ASP.NET WebAPi(selfhost)實(shí)現(xiàn)文件同步或異步上傳

    這篇文章主要介紹了ASP.NET WebAPi(selfhost)實(shí)現(xiàn)文件同步或異步上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • asp.net中的“按需打印”(打印你需要打印的部分) 實(shí)現(xiàn)代碼

    asp.net中的“按需打印”(打印你需要打印的部分) 實(shí)現(xiàn)代碼

    有時(shí)我們需要對(duì)asp.net網(wǎng)頁中某些特定部分進(jìn)行打印,很多人采用CSS樣式或特定的打印控件來解決網(wǎng)頁定制打印功能。這里采用Javascript樣式替換方式進(jìn)行打印,使網(wǎng)頁顯示與打印效果相分離。
    2013-06-06
  • IIS和.NET(1.1/2.0)的安裝順序及錯(cuò)誤解決方法

    IIS和.NET(1.1/2.0)的安裝順序及錯(cuò)誤解決方法

    安裝順序及錯(cuò)誤的解決方法:基于.net2.0的情況與基于.net1.1的情況,分別給予解決方法,遇到此問題的朋友可以了解下,或許對(duì)你的學(xué)習(xí)有所幫助
    2013-02-02
  • ASP.NET頁面按鈕單擊事件失效的解決方法

    ASP.NET頁面按鈕單擊事件失效的解決方法

    按鈕的單擊事件不起作用了,加了斷點(diǎn)之后發(fā)現(xiàn)根本沒有觸發(fā)該事件,下面有個(gè)不錯(cuò)的解決方法,大家可以參考下
    2014-02-02
  • C#可以減少或不使用switch有什么方法

    C#可以減少或不使用switch有什么方法

    減少或不使用switch,大家有什么好的方法,使用工廠方法來處理,可以創(chuàng)建一個(gè)工廠接口,然后每個(gè)方法設(shè)計(jì)為一個(gè)工廠類,并實(shí)現(xiàn)工廠接口,感興趣的朋友可以了解下
    2013-03-03

最新評(píng)論