Asp.net mvc 如何在Swashback中读取自定义标题?

Asp.net mvc 如何在Swashback中读取自定义标题?,asp.net-mvc,swagger,swashbuckle,Asp.net Mvc,Swagger,Swashbuckle,我使用以下代码向操作添加自定义头: public class RequestIdParameter : IOperationFilter { public void Apply(Swashbuckle.Swagger.Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription) { if (operation == null) return;

我使用以下代码向操作添加自定义头:

public class RequestIdParameter : IOperationFilter
{
    public void Apply(Swashbuckle.Swagger.Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
    {
        if (operation == null) return;

        if (operation.parameters == null)
        {
            operation.parameters = new List<Parameter>();
        }

        var requestParameter = new Parameter
        {
            description = "RequestId",
            @in = "header",
            name = "RequestId",
            required = true,
            type = "string"
        };

        operation.parameters.Add(requestParameter);
    }
}
试试这个:

if (HttpContext.Current.Request.Headers.Contains("RequestId")) 
{
    string value =  HttpContext.Current.Request.Headers.GetValues("RequestId").FirstOrDefault();
}

IEnumerable headerValue;
if(HttpContext.Current.Request.Headers.TryGetValues(“RequestId”,out headerValues))
{
字符串值=headerValues.FirstOrDefault();
}  

参数的名称是
RequestId
,但您正在查找参数
RequestId
。您确定这不是区分大小写的问题吗?请尝试HttpContext.Current.Request.Headers[“requestid”]
if (HttpContext.Current.Request.Headers.Contains("RequestId")) 
{
    string value =  HttpContext.Current.Request.Headers.GetValues("RequestId").FirstOrDefault();
}
IEnumerable<string> headerValues;
if (HttpContext.Current.Request.Headers.TryGetValues("RequestId", out headerValues))
{
    string value = headerValues.FirstOrDefault();
}