我正在尝试在webapi项目的委托处理程序中为请求添加标头 像这样:
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);
}
进入控制器后,我希望能够得到这样的标题:
var cor = request.Headers["correlationId"];
然而标题不存在。
答案 0 :(得分:0)
如何将值存储在HttpRequestMessage.Properties
中呢?
DelegatingHandler:
request.Properties.Add("correlationId", CommonBaseController.CreateSafeCorrelationId(string.Empty).ToString());
ApiController:
var id = Request.Properties["correlationId"];
答案 1 :(得分:0)
我使用了错误的请求对象。 Headers不会显示在HttpContext.Current.Request中,而是显示在Controller中的base.Request对象中。
由于