我正在.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
答案 0 :(得分:2)
Microsoft.AspNetCore.Buffering软件包包含一个中间件,该中间件将缓冲您的响应。在启动配置期间,只需在应用程序构建器上调用UseResponseBuffering()
。
请注意,您的响应仍然可能被Kestrel前面的任何内容(IIS,nginx等)分块。
顺便说一句,将您的响应分块应该不会引起任何问题,除非您有一些奇怪的不符合要求的HTTP客户端与其通信。击中服务器的任何内容的HTTP堆栈都应在后台解码分块。