我正在尝试使用像这样的自定义消息处理程序向我的 WebAPI 添加路由
config.Routes.MapHttpRoute(
name: "TestRoute",
routeTemplate: "Protected/TestMe",
defaults: null,
constraints: null,
handler: new CustomHandler()
);
处理程序代码
internal class CustomHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
HttpResponseMessage respMsg = new HttpResponseMessage();
respMsg.Headers.Add("MyCustomHeader", "Test");
respMsg.StatusCode = HttpStatusCode.NoContent;
return Task.FromResult(respMsg);
}
}
但是每次我访问所述路由时,我都没有返回我的自定义标头或 NoContent 代码,而是从路由接收结果,但是如果我将处理程序添加为全局处理程序,就像这样
config.MessageHandlers.Add(new CustomHandler());
它工作并返回我的自定义标题和 NoContent 状态代码我在路由设置中缺少什么?