.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);
并交叉手指,以便服务器喜欢该请求。嗯。。。