2017-10-11 7 views
1

私は運転にカスタムヘッダーを追加するには、次のコードを使用:Swashbuckleでカスタムヘッダーを読む方法は?

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); 
    } 
} 

しかし、今、私はその値を読み取る必要があります。私はこのコードを試してみましたが、カスタムヘッダーが存在しません:

System.Web.HttpContext.Current.Items.contains("requestId") 
+0

パラメータの名前は 'RequestId'ですが、あなたは、パラメータ 'requestId'を探します。大文字と小文字の区別が問題ではないと確信していますか? –

+1

try HttpContext.Current.Request.Headers ["requestid"] – Nico

答えて

1

はこれを試してみてください:

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(); 
} 
関連する問題