【发布时间】:2012-11-02 15:16:36
【问题描述】:
这发生在针对 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 : value key=XXX' 的格式无效。
解决办法是去掉等号。
深入研究反射器表明,在添加新标头值时会运行大量验证和解析代码。为什么这一切都是必要的?这位客户不应该让开我们的路吗?
如何转义等号以使添加此值成功?
【问题讨论】:
-
@SamIam 尝试向 GCN API 发布消息 - 这需要使用上面显示的格式作为标头发送身份验证信息。但是,这是一个关于 HttpClient 标头的允许值的更普遍的问题。
标签: c# dotnet-httpclient google-cloud-messaging