假设以下的 System.Net.Http.HttpClient
可移植类库
抛出了一个异常:
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Authorization", "aaaa,bbbb");
异常类型是:无效格式
在 System.Net.Http.Headers.HttpHeaders.AddInternal (System.String name, IEnumerable
1 values, System.Net.Http.Headers.HeaderInfo headerInfo, Boolean ignoreInvalid) [0x0004c] in /Developer/MonoTouch/Source/mono/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs:195 at System.Net.Http.Headers.HttpHeaders.Add (System.String name, IEnumerable
1 values) [0x00011] in /Developer/MonoTouch/Source/mono/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs:170 at System.Net.Http.Headers.HttpHeaders.Add (System.String name, System.String value) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders < ... 省略 ...>
现在只会在以下情况下发生:
标头键 = Authorization
。如果将其更改为其他内容,则没有问题。
值 = 必须包含逗号。
现在,这个先前的 SO 问题表明,在标头中使用逗号是正确的方式来粘贴多个值。
有人能解释一下发生了什么吗?
注意:这是在 Xamarin 上,所以我猜它是 mono。不确定是否重要。
更新:
这是一个图片。