我是 .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/