【问题标题】:DotNet Core remove content-length headerDotNet Core 删除内容长度标头
【发布时间】:2021-12-27 10:04:30
【问题描述】:

我有一个在 Kestrel Server 中运行的 DotNet Core API

在响应标头中,它添加了导致问题的标头“Content-Length”。

有什么方法可以删除所有响应的 Content-Length Header 吗?

我尝试了下面的代码,但它只删除了“服务器:红隼”类型的标头。

.ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                               .UseKestrel(options => options.AddServerHeader = false);
                });

【问题讨论】:

    标签: .net-core kestrel-http-server


    【解决方案1】:

    如果我没记错的话,AddServerHeader只对应WebServer的类型,意思是“Kestrel”关键字。

    我认为没有删除“Content-Length”的内置机制,因此您应该创建一个中间件并在结果之后删除此标头。

    我还要指出,当删除此标头时,客户端将继续读取响应(或等待),因此您每次都需要强制关闭连接,不建议这样做。

    您可以在此处进一步阅读:https://stackoverflow.com/a/15995101/303254

    【讨论】:

    • 我要删除 Content-Length 标头的主要问题是因为当我们收到 204 状态代码和 Content-length 为 0 时,WSO2 网关失败,我不太理解您在删除标头时的观点导致客户端继续读取响应,这会使应用程序失败吗?
    猜你喜欢
    • 2013-01-23
    • 2011-11-17
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多