Это произошло в контексте кодирования для 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' недействителен.
Решение состоит в том, чтобы удалить знак равенства.
Копание в рефлекторе показывает, что существует куча кода проверки и синтаксического анализа, который запускается при добавлении нового значения заголовка. Зачем все это нужно? Разве этот клиент не должен просто убраться с нашего пути?
Как избежать знака равенства, чтобы добавление этого значения прошло успешно?