【发布时间】:2013-08-24 19:02:46
【问题描述】:
我正在尝试记录我的 Web API 项目的 HTTP 响应标头。
项目由VS2012、.NET 4.5和ASP.NET MVC 4开发。
我写了一个像这样的DelegatingHandler 子类:
public class LoggingHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
// Execute the request
return base.SendAsync(request, cancellationToken).ContinueWith(task =>
{
var response = task.Result;
return response;
});
}
}
但是,问题是,我无法从response 获取标头值。 response.Headers 是一个空集合,response.Content.Headers 只包含一个名为 Content-Type 的键,HttpContext.Current 是 null。
我看到WebAPIContrib 的代码使用相同的逻辑来记录标题,但它们的代码似乎也不起作用。
那么我应该如何跟踪 Web API 项目中的 HTTP 响应标头?
【问题讨论】:
-
这里有同样的问题。你有解决办法吗?
-
不,从未发现
-
我通过将响应标头发送到客户端而不是更改委托处理程序中的响应消息来解决了这个问题。在我的 javascript 框架中也容易得多!
标签: c# asp.net asp.net-mvc-4 asp.net-web-api web-api-contrib