在 DelegatingHandler 中添加 webapi Header
Add webapi Header in a DelegatingHandler
我正在尝试向 webapi 项目的委托处理程序中的请求添加 header
像这样:
protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var corGuid = CommonBaseController.CreateSafeCorrelationId(string.Empty);
cor = corGuid.ToString();
request.Content.Headers.Add("correlationId", cor);
var response = await base.SendAsync(request, cancellationToken);
}
进入控制器后,我希望能够像这样获得 header:
var cor = request.Headers["correlationId"];
但是 header 不存在。
如何将值存储在 HttpRequestMessage.Properties
中?
委托处理程序:
request.Properties.Add("correlationId", CommonBaseController.CreateSafeCorrelationId(string.Empty).ToString());
Api控制器:
var id = Request.Properties["correlationId"];
我使用了错误的请求 Object。 Headers 没有出现在 HttpContext.Current.Request 中,而是出现在控制器的 base.Request object 中。
谢谢
我正在尝试向 webapi 项目的委托处理程序中的请求添加 header 像这样:
protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var corGuid = CommonBaseController.CreateSafeCorrelationId(string.Empty);
cor = corGuid.ToString();
request.Content.Headers.Add("correlationId", cor);
var response = await base.SendAsync(request, cancellationToken);
}
进入控制器后,我希望能够像这样获得 header:
var cor = request.Headers["correlationId"];
但是 header 不存在。
如何将值存储在 HttpRequestMessage.Properties
中?
委托处理程序:
request.Properties.Add("correlationId", CommonBaseController.CreateSafeCorrelationId(string.Empty).ToString());
Api控制器:
var id = Request.Properties["correlationId"];
我使用了错误的请求 Object。 Headers 没有出现在 HttpContext.Current.Request 中,而是出现在控制器的 base.Request object 中。
谢谢