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

时间:2018-12-11 03:16:58

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

我正在.Net Core 2.2 / Kestrel / Swagger 3(OpenAPI)中成为REST api。我在Fiddler中注意到,我的回答都标记为带有黄色横幅的“已编码”,已启用“块编码”,而Json上则乱堆了5J,等等。如何禁用它?

我已经在SO上看到了一些线程,但是它们适用于旧版本...

此外,我的猜测是,我希望通过中间件以某种方式实现此目的...因此,我不必更改任何控件,也不必通过它摇摇所有插件。

有一个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

1 个答案:

答案 0 :(得分:2)

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

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

顺便说一句,将您的响应分块应该不会引起任何问题,除非您有一些奇怪的不符合要求的HTTP客户端与其通信。击中服务器的任何内容的HTTP堆栈都应在后台解码分块。