从 IHeaderDictionary 对象读取范围标头的正确方法

问题描述 投票:0回答:2

我有一个

ActionContext
物体。

我想从

Range
读取
Request
标题。我所知道的是我可以这样读

var rangeHeader = context.HttpContext.Request.Headers["Range"]

但是我必须拆分字符串才能获取范围

from
to
值,因为范围标头像这样
byte=100-512

那么这是从

IHeaderDictonary
读取此标头的正确方法还是有更好的方法来做到这一点?

c# asp.net request-headers actioncontext
2个回答
0
投票

我刚刚发现什么可能是“官方”的方式:

将以下 nuget 添加到您的项目“Microsoft.AspNetCore.Http.Extensions”。

然后这样做:

var range = context.Request.GetTypedHeaders().Range;

你就完成了:)


0
投票

将可选的enableRangeProcessing设置为true,您不必自己处理范围标头。

public virtual FileStreamResult File(Stream fileStream, string contentType, bool enableRangeProcessing)

https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.fileresult.enablerangeprocessing?view=aspnetcore-9.0

进一步阅读源代码 https://github.com/dotnet/aspnetcore/blob/main/src/Shared/ResultsHelpers/FileResultHelper.cs#L90

© www.soinside.com 2019 - 2024. All rights reserved.