作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Owin 自托管 Web Api 项目中,我正在尝试构建一个 custom MediaTypeFormatter
继承自 BufferedMediaTypeFormatter
。但问题是HttpContent
对象传递到 ReadFromStream(..)
不包含请求中发送的所有 header 。
如何访问请求中发送的所有 header (我知道这一点是因为我发出了请求),或访问原始 HttpRequestMessage
在 ReadFromStream(..)
方法?
这似乎是一个主要错误,我想不出为什么所有 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/
我是一名优秀的程序员,十分优秀!