c# - .Net Core 2.2/Kestrel/Swagger 禁用分块/编码

标签 c# asp.net-core .net-core swagger

我是 .Net Core 2.2/Kestrel/Swagger 3 (OpenAPI) 中的 REST api。我注意到在 Fiddler 中,我的响应都被黄色横幅标记为已编码,启用了分块编码并且 Json 中散布着 5J 等。我该如何禁用它?

我在 SO 上看到了一些线程,但它们是针对旧版本的......

此外,我的猜测是我想通过某种方式通过中间件来完成此操作...这样我就不必更改任何控件,Swagger 将通过它全部插入。

有一个 SO 响应链接到一个 GitHub 项目,据称是这样做的,但该项目已被删除。

它在 Fiddler 中像这样返回(带有 51 和 0):

51
{
  "": [
    "Content-Type must be application/x-www-form-urlencoded."
  ]
}
0

标题:

Transfer-Encoding: chunked
X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcR2lsIFJvc2luXERvY3VtZW50c1xWaXN1YWwgU3R1ZGlvIDIwMTdcUHJvamVjdHNcRFRNUzJcdG9rZW4=?=
Server: Kestrel
Content-Type: application/json

最佳答案

Microsoft.AspNetCore.Buffering包包含一个中间件,可以缓冲您的响应。只需在启动配置期间对您的应用程序构建器调用 UseResponseBuffering()

请注意,您的响应仍然可能被 Kestrel 前面的任何内容(IIS、nginx 等)分块。

顺便说一句,将您的响应分块应该不会造成任何问题,除非您有一些奇怪的不符合标准的 HTTP 客户端与之通信。任何访问您的服务器的 HTTP 堆栈都应该在幕后解码分块。

关于c# - .Net Core 2.2/Kestrel/Swagger 禁用分块/编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53716861/

相关文章:

c# - 未经检查的异常(例如 C#)与 Java 类异常有何不同?

asp.net-mvc - ASP.NET Core 模型状态不返回 DataMember 名称

c# - .Net Core 中的网络文件共享访问

c# - 提高 "shuffle"效率

c# - 如何从集合中检索第一项?

c# - 将 System.Drawing.Bitmap 转换为 WPF 的 System.Windows.Media.BitmapImage

asp.net-core - VB asp.net 到.net core

asp.net-web-api - ASP.NET 5/MVC 6 中 MVC 和 WebAPI 的区别

c# - .Net Core Connection 目前有事务登记

c# - 如何重命名一个mongodb数据库