首页 > 解决方案 > 如何获得跨度到 Kestrel 中的 HTTP 请求标头

问题描述

.NET Core 现在具有Span<T>允许更高效的内存操作的高效和相关类型。此外,还有一些基本的解析原语Span<Byte>无需解码 UTF-8 即可处理。

Kestrel 可以在不使用string我认为的情况下处理请求。

但是,ASP.NET Core 的用户仅获取请求标头(请求路径和 HTTP 标头)为strings。

有没有办法得到它Span<Byte>?我有一个非常低级的应用程序,理想情况下我希望某些请求不分配内存。我也只是好奇。

标签: asp.net-corekestrel-http-server

解决方案


不在此级别,标题的抽象是 IHeaderDictionary。这些是在您的代码运行之前解析的,我们为您提供一个 StringValues。byte[]围绕将其公开为/进行了各种讨论,Span<byte>但目前还没有任何结果。


推荐阅读