我试图获得如下的标题值 -
IEnumerable<string> headerValues = request.Headers.GetValues("MyCustomerId");
var id = headerValues.FirstOrDefault();
如果标头值为null或不存在,则抛出错误 - InvalidOperationException
GetValues
的空检查不会提供任何值,因为它永远不会返回null。如果标题不存在,您将获得InvalidOperationException
这样做的任何技巧?
答案 0 :(得分:3)
您可以像这样检查null:
if(System.Web.HttpContext.Current.Request.Headers["MyCustomerId"] != null)
{
// do something
}
尝试并测试
答案 1 :(得分:3)
request.Headers
是System.Net.Http.HttpHeaders
的实例(通过HttpRequestHeaders
子类)。它有一个方法TryGetValues
,可以用来安全地检索标题的值。
String header = null;
IEnumerable<String> headerValues;
if( this.Request.Headers.TryGetValues("HeaderName", out headerValues) ) {
header = headerValues.First();
}
答案 2 :(得分:2)
您可以使用Headers.Contains()
测试任何标头的存在。
请参阅this answer中的示例。