在WebAPI的HttpResponseMessage / HttpRequestMessage类型中,直接看到实际发送或接收的Http Headers原始列表可能非常有益。我的意思是一个普通的字符串,每个报头都在新行上,完全是生成或接收的内容。
但不幸的是,这两种类型似乎都不能让你看到实际生成的内容。相反,属性随处可见。有些在原始的HttpResponseMessage / HttpRequestMessage类型本身中,有些在response/request.Content.Headers中(两者不重复,后者用于通常用于自定义标头的未覆盖为属性的标头),...也许Cookie还有自己的标头集合。而且可视化地查看这些Header集合也很麻烦,即你最终会得到一堆迭代代码来处理每个这样的集合...更加混乱。
但在实际发送/接收的响应/请求中,没有这样的区分,可以轻松地查看所有的Http headers。那么我是否错过了什么?这些类型中是否实际上有一个简单直观的属性,只返回原始的headers字符串?毫无疑问,响应已经接收到了header并解析了它们...这个原始字符串藏在哪里呢?
(顺便说一句,我知道Fiddler...但那完全是不令人满意的。如果我必须处理Http headers的低级问题,那么使用生成和接收它们的编程类型来查看它们是很有意义的。但更糟糕的是,我仍然不能让localhost与Fiddler(在Win8上)一起工作,这使得它对许多调试场景无法使用,其中我想做的就是看到将要生成的头文件。)
但不幸的是,这两种类型似乎都不能让你看到实际生成的内容。相反,属性随处可见。有些在原始的HttpResponseMessage / HttpRequestMessage类型本身中,有些在response/request.Content.Headers中(两者不重复,后者用于通常用于自定义标头的未覆盖为属性的标头),...也许Cookie还有自己的标头集合。而且可视化地查看这些Header集合也很麻烦,即你最终会得到一堆迭代代码来处理每个这样的集合...更加混乱。
但在实际发送/接收的响应/请求中,没有这样的区分,可以轻松地查看所有的Http headers。那么我是否错过了什么?这些类型中是否实际上有一个简单直观的属性,只返回原始的headers字符串?毫无疑问,响应已经接收到了header并解析了它们...这个原始字符串藏在哪里呢?
(顺便说一句,我知道Fiddler...但那完全是不令人满意的。如果我必须处理Http headers的低级问题,那么使用生成和接收它们的编程类型来查看它们是很有意义的。但更糟糕的是,我仍然不能让localhost与Fiddler(在Win8上)一起工作,这使得它对许多调试场景无法使用,其中我想做的就是看到将要生成的头文件。)
HttpRequestMessage.Raw
属性或类似的东西。我想我必须重新创建原始响应,给定Headers
和Content
属性。 - NathanAldenSrGlobalConfiguration
中注册的自定义消息处理程序获得了原始请求和响应的相似性,但是在响应中,标头只包含由Web API设置的标头,而IIS添加的标头则不存在。我希望他们能够在某个地方提供原始请求和响应属性,而不是将其隐藏在抽象层中! - user692942