2016-04-23 147 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