asp.net-mvc - 如何启用 HTTP 压缩来压缩 JSON 文档

标签 asp.net-mvc json asp.net-mvc-4 azure

我有一个托管在 Microsoft Azure 上的 MVC 5 应用程序 (C#)。该应用程序从服务器返回一些相当大的 JSON 文档到客户端。有谁知道如何打开 HTTP 压缩,以便将这些文档压缩到客户端?我在 Google 上搜索过此内容,但找不到任何 3-4 年前的内容。

我认为另一种方法是使用压缩实用程序仅压缩 JSON 文档。我尝试过 LZ-String 但似乎无法使用 C# 版本在服务器上压缩文档并使用 JavaScript 版本在客户端上解压缩,并识别生成的 JSON 文档。

最佳答案

要启用 MVC Controller 操作的 JsonResult 压缩,您需要从 web.config 文件启用动态压缩:

  <system.webServer>
    <urlCompression doDynamicCompression="true" />
    <httpCompression>
      <dynamicTypes>
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/json; charset=utf-8" enabled="true" />       
      </dynamicTypes>
    <staticTypes>
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/json; charset=utf-8" enabled="true" />       
    </staticTypes>
    </httpCompression>
  </system.webServer>  

具有上述配置的工作示例已发布在 Azure 网站的免费层上,并且可以使用简单的 HTTP GET 请求进行测试:

GET https://double.azurewebsites.net/Home/SomeJson HTTP/1.1
User-Agent: Fiddler
Accept-Encoding: gzip, compress
Host: double.azurewebsites.net

请注意,Accept-Encoding header 绝对必须触发服务器端压缩。另请注意 mime 类型 application/json; charset=utf-8 这是 ASP.NET MVC5 JsonResult 提供的 mime 类型。

关于asp.net-mvc - 如何启用 HTTP 压缩来压缩 JSON 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25684575/

相关文章:

c# - 如何在 MVC 中填充模型

javascript - 从 json stringify 中提取文本

c# - 将 json 反序列化为字典无法正常工作

php - 使用 json 在数据库上插入多个复选框

c# - 设置在 Foreach 循环中默认选中的 RadioButtonFor()

jquery - Ajax 调用 MVC Controller 返回 "NOT FOUND"

asp.net-mvc - 加载处理程序在 MVC 中的什么位置?

html - MVC4 WebGrid header 固定在顶部

asp.net-mvc - 如何创建 ASP.NET MVC 类库

html - 页面顶部的空白