Ich versuche, die System.Net.HttpClient
Klasse zu verwenden, um eine Nachricht an Google Cloud Messaging zu senden.Eine benutzerdefinierte Zeichenfolge in den Header "Authorization" in System.Net.HttpClient eingeben
Google Cloud Nachricht erfordert, dass Sie einen Header enthalten namens „Autorisierung“, in einem ähnlichen Format wie folgt aus:
key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0Lu8D
Aber die HttpClient
Klasse löst eine Ausnahme aus, wenn ich das versuchen.
string keyString = "key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Foo", keyString); // <== Proving I can
client.DefaultRequestHeaders.Add("Authorization", keyString); // Exception thrown
Die Ausnahme ist vom Typ System.FormatException
. Die Botschaft ist
Das Format der Wert 'key = AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w' ist ungültig.
Und die Aufrufliste ist:
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)
Wie kann ich diesen Header in diese Post-Anforderung ohne eine Ausnahme geworfen bekommen?
Übrigens habe ich komponiert habe einen Beitrag wie diese Fiddler verwenden, und es funktioniert:
Headers:
User-Agent: Fiddler
Authorization: key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0Lu8D
Host: android.googleapis.com
Content-Length: 220
Content-Type: application/json
Anfrage Körper:
{
"registration_ids" : ["APA91bEM6XPdiZv5VgNNApakfyYfZwB871018Hljl1L27kaPvksasnR0bHlmcCZFxOSPD6bDLMZgvgfT9xsKnF6Tg0oSQM2cMM1KRbuK7cR7jICqAnSDYg_SvERTzPMT8puXGTlVkEVH6dsneBkXiBu6pZikWXWyRATAVbXnAHTe20-nQerb0"],
}
Haben Sie versucht, die 'Authorization' -Eigenschaft auf den Headern zu setzen, statt zu versuchen, eine neue hinzuzufügen? –
Und auch 'client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue ("key", "AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w");' –
@ Joel Allison: Ich habe versucht, das, und dann der Header "Schlüssel AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w" war. Es enthielt das '=' Zeichen nicht. –