2016-04-23 187 views

回答

12

有多個選項郵編可用例如GZIP,BZIP2 DEFLATE不能確定使用哪一個好心幫這裏

該列表將被髮送到服務器,讓它知道關於C喜歡壓縮的喜好。這意味着「我首先選擇GZIP,如果服務器端不支持GZIP,則回退到BZIP2 DEFLATE壓縮,如果BZIP2 DEFLATE不支持,服務器將不會執行任何壓縮。」

有人已經創建了一個nuget包,使用您剛纔在問題中提到的實現。包名稱是Microsoft.AspNet.WebApi.MessageHandlers.Compression其安裝以下兩個包:

  • Microsoft.AspNet.WebApi.Extensions.Compression.Server
  • System.Net.Http .Extensions.Compression.Client

如果您不需要客戶端庫,那麼只需要Web API項目中的服務器端包。

要使用它,你需要修改你的Application_Start方法結束在Gloabl.asax.cs添加以下行:

GlobalConfiguration.Configuration.MessageHandlers.Insert(0, new ServerCompressionHandler(new GZipCompressor(), new DeflateCompressor())); 

要了解更多關於這個包檢查這個link

+0

嗨 我已經休耕下面的步驟, 創建於2013 VS API網絡的新的解決方案,增加NuGet包和配置Global.ascx ..當我在提琴手運行示例代碼,並檢查仍是其未壓縮 – user3227615

+0

在將請求發送到服務器之前,您需要添加「Accept-Encoding:gzip,deflate」來配置標題。提琴手不會自動添加它,但瀏覽器。 – CodeNotFound

+0

@ user3227615你有沒有在我的評論中測試我說的話? – CodeNotFound