.NET HttpRequestMessage:是否可以添加具有空值的标头?

.NET HttpRequestMessage:是否可以添加具有空值的标头?,.net,header,http-headers,request-headers,.net,Header,Http Headers,Request Headers,是否可以添加值为空/缺少的标题 HttpRequestMessage.Headers.Add("header-name", string.Empty); System.FormatException was unhandled by user code HResult=-2146233033 Message=The format of value '' is invalid. Source=System.Net.Http StackTrace: at System

是否可以添加值为空/缺少的标题

HttpRequestMessage.Headers.Add("header-name", string.Empty);

System.FormatException was unhandled by user code
  HResult=-2146233033
  Message=The format of value '' is invalid.
  Source=System.Net.Http
  StackTrace:
       at System.Net.Http.Headers.HttpHeaderParser.ParseValue(String value, Object storeValue, Int32& index)
       at System.Net.Http.Headers.HttpHeaders.ParseAndAddValue(String name, HeaderStoreItemInfo info, String value)
       at System.Net.Http.Headers.HttpHeaders.Add(String name, String value)
       at 

那是不可能的。这违反了法律

4.2消息头 HTTP标头字段,包括通用标头(第4.5节), 请求标头(第5.3节)、响应标头(第6.2节)和 实体标题(第7.1节)字段的通用格式与 RFC 822[9]第3.1节中给出的。每个标题字段包括 名称后跟冒号(“:”)和字段值


您可以通过以下方式之一获取HttpHeaders的空实例:

var headers = new HttpClient().DefaultRequestHeaders;
var headers = new HttpResponseMessage().Headers;
var headers = new HttpRequestMessage().Headers;
You could also make your own class that extends HttpHeaders and use that.

如果要发送没有值的疯狂标头,请使用
TryAddWithoutValidation()
方法,例如:

HttpRequestMessage request = new HttpRequestMessage();
request.RequestUri = new Uri("http://kiewic.com");
var result = request.Headers.TryAddWithoutValidation("Authorization", string.Empty);

HttpClient client = new HttpClient();
var response = await client.SendAsync(request);
并交叉手指,以便服务器喜欢该请求。

嗯。。。