这是在针对Google Cloud Messaging进行编码的情况下发生的,但在其他地方也适用。
考虑以下:
var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("key=XXX");
和
var http = new HttpClient();
http.DefaultRequestHeaders.Add("Authorization", "key=XXX");
两者都生成FormatException:
System.FormatException:值key = XXX'的格式无效。
解决方法是删除等号。
深入了解反射器表明,添加新的标头值时会运行大量的验证和解析代码。为什么这一切都是必要的?这个客户难道不应该躲开我们吗?
如何逃避等号,以便成功添加此值?