gpt4 book ai didi

asp.net - BufferedMediaTypeFormatter HttpContent 不包含请求中发送的所有 header

转载 作者:行者123 更新时间:2023-12-02 23:59:36 26 4
gpt4 key购买 nike

在我的 Owin 自托管 Web Api 项目中,我正在尝试构建一个 custom MediaTypeFormatter继承自 BufferedMediaTypeFormatter 。但问题是HttpContent对象传递到 ReadFromStream(..)不包含请求中发送的所有 header 。

如何访问请求中发送的所有 header (我知道这一点是因为我发出了请求),或访问原始 HttpRequestMessageReadFromStream(..)方法?

这似乎是一个主要错误,我想不出为什么所有 Request 的任何原因。未提供 header 。

最佳答案

听起来 ASP.NET Request 对象没有公开您正在查找的特定 header 字段名称的属性。

所以看起来首先,您需要请求,并且为此您可以覆盖 GetPerRequestFormatterInstance:

How do I retrieve the HTTP request method in an ASP.NET WebAPI MediaTypeFormatter?

获得请求对象后,您可以搜索要查找的特定 header 字段名称,如下所示:

IEnumerable<string> headerValues = request.Headers.GetValues("MyHeaderFieldName");
var id = headerValues.FirstOrDefault();

如果需要,您还可以获取原始请求:

Request.InputStream.Position = 0;
var input = new StreamReader(Request.InputStream).ReadToEnd();

关于asp.net - BufferedMediaTypeFormatter HttpContent 不包含请求中发送的所有 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33540441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com