最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)頁面GZip或Deflate壓縮的方法

 更新時(shí)間:2015年06月09日 16:51:01   作者:McJeremy&Fan  
這篇文章主要介紹了C#實(shí)現(xiàn)頁面GZip或Deflate壓縮的方法,涉及C#通過GZipStream與DeflateStream實(shí)現(xiàn)頁面壓縮的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了C#實(shí)現(xiàn)頁面GZip或Deflate壓縮的方法。分享給大家供大家參考。具體分析如下:

.NET Framework里
System.IO.Compression下有兩個(gè)可用于頁面壓縮的類,GZipStream和 DeflateStream.

在頁面被傳輸之前,需要獲取發(fā)出請(qǐng)求的客戶端所采用的解碼形式。
可以通過Request.Headers["Accept-Encoding"]來獲取。

在頁面被壓縮之前,需要獲取頁面實(shí)體主體,可通過
Response.Filter來獲?。⊿tream類型)

示例代碼:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.IO.Compression;
/// <summary>
/// GzipDeflate 的摘要說明
/// </summary>
public class GzipDeflate:IHttpModule
{
  public GzipDeflate()
  {
    //
    // TODO: 在此處添加構(gòu)造函數(shù)邏輯
    //
  }
  public void Init(HttpApplication app)
  {
    app.BeginRequest += new EventHandler(app_BeginRequest);
  }
  void app_BeginRequest(object sender, EventArgs e)
  {
    //HTTP頭域可分為四類:通用頭、請(qǐng)求頭、響應(yīng)頭、實(shí)體頭。
    HttpApplication app=(HttpApplication)sender;
    string acceptEncoding = app.Request.Headers["Accept-Encoding"];
    //客戶端支持的解碼方式。屬于請(qǐng)求頭。
    Stream requestStream = app.Response.Filter;
    acceptEncoding = acceptEncoding.ToLower();
    if(acceptEncoding.Contains("gzip"))
    {
      app.Response.Filter = new GZipStream(requestStream, CompressionMode.Compress);
      app.Response.AppendHeader("Content-Encoding", "gzip");
    }
    else if(acceptEncoding.Contains("deflate"))
    {
      app.Response.Filter = new DeflateStream(requestStream, CompressionMode.Compress);
      app.Response.AppendHeader("Content-Encoding", "deflate");
      //屬于實(shí)體頭。
    }
  }
  public void Dispose()
  {
  }
}

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 關(guān)于C#基礎(chǔ)知識(shí)回顧--反射(二)

    關(guān)于C#基礎(chǔ)知識(shí)回顧--反射(二)

    其實(shí)說白了,反射就是能知道我們未知類型的類型信息這么一個(gè)東西.沒什么神秘可講!反射的核心是System.Type。System.Type包含了很多屬性和方法,使用這些屬性和方法可以在運(yùn)行時(shí)得到類型信息
    2013-07-07
  • C#自定義RSA加密解密及RSA簽名和驗(yàn)證類實(shí)例

    C#自定義RSA加密解密及RSA簽名和驗(yàn)證類實(shí)例

    這篇文章主要介紹了C#自定義RSA加密解密及RSA簽名和驗(yàn)證類,實(shí)例分析了C#實(shí)現(xiàn)RSA加密解密及RSA簽名和驗(yàn)證的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • c#批量上傳圖片到服務(wù)器示例分享

    c#批量上傳圖片到服務(wù)器示例分享

    這篇文章主要介紹了c#批量上傳圖片到服務(wù)器示例,服務(wù)器端需要設(shè)置圖片存儲(chǔ)的虛擬目錄,需要的朋友可以參考下
    2014-03-03
  • 為IObservable實(shí)現(xiàn)自己的運(yùn)算符(詳解)

    為IObservable實(shí)現(xiàn)自己的運(yùn)算符(詳解)

    下面小編就為大家?guī)硪黄獮镮Observable實(shí)現(xiàn)自己的運(yùn)算符(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • C#?wpf使用GDI+實(shí)現(xiàn)截屏效果

    C#?wpf使用GDI+實(shí)現(xiàn)截屏效果

    wpf做屏幕錄制或者屏幕廣播之類的功能時(shí)需要實(shí)現(xiàn)截屏,在C#中比較容易實(shí)現(xiàn)的截屏方法是使用GDI+,所以本文將展示一下如何使用GDI+實(shí)現(xiàn)截屏,需要的可以參考下
    2023-09-09
  • unity3D實(shí)現(xiàn)三維物體跟隨鼠標(biāo)

    unity3D實(shí)現(xiàn)三維物體跟隨鼠標(biāo)

    這篇文章主要為大家詳細(xì)介紹了unity3D實(shí)現(xiàn)三維物體跟隨鼠標(biāo),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • c#實(shí)現(xiàn)圖片二值化例子(黑白效果)

    c#實(shí)現(xiàn)圖片二值化例子(黑白效果)

    這篇文章主要介紹了c#實(shí)現(xiàn)圖片二值化例子,圖像二值化就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果,需要的朋友可以參考下
    2014-08-08
  • 使用快捷鍵在Unity中快速鎖定和解鎖Inspector右上角的鎖功能

    使用快捷鍵在Unity中快速鎖定和解鎖Inspector右上角的鎖功能

    這篇文章主要為大家介紹了使用快捷鍵在Unity中快速鎖定和解鎖Inspector右上角的鎖功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • C#-WinForm跨線程修改UI界面的示例

    C#-WinForm跨線程修改UI界面的示例

    這篇文章主要介紹了C#-WinForm跨線程修改UI界面的示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#圖片處理類分享

    C#圖片處理類分享

    這篇文章主要為大家分享了C#圖片處理類的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評(píng)論

大荔县| 张家界市| 若尔盖县| 京山县| 昭苏县| 社会| 东兴市| 栾川县| 贵溪市| 凤冈县| 长治县| 浦城县| 滨海县| 道孚县| 读书| 定陶县| 平罗县| 乌什县| 江阴市| 永胜县| 南木林县| 黔西县| 博罗县| 东明县| 沈阳市| 昌邑市| 山阴县| 大英县| 西畴县| 于田县| 屯留县| 漯河市| 新邵县| 读书| 德州市| 景宁| 虞城县| 刚察县| 五莲县| 汉寿县| 盐津县|