Sto tentando di utilizzare la classe System.Net.HttpClient
per inviare un messaggio a Google Cloud Messaging.Inserimento di una stringa personalizzata nell'intestazione "Autorizzazione" in System.Net.HttpClient
Google Cloud messaggio richiede di includere un'intestazione denominata "Autorizzazione", in un formato simile a questo:
key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0Lu8D
Ma la classe HttpClient
genera un'eccezione quando provo questo.
string keyString = "key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Foo", keyString); // <== Proving I can
client.DefaultRequestHeaders.Add("Authorization", keyString); // Exception thrown
L'eccezione è di tipo System.FormatException
. Il messaggio è
Il formato del valore di 'key = AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w' è valido.
E lo stack è:
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)
Come posso ottenere questa intestazione in questa richiesta post senza eccezione essere buttato?
Per inciso, ho composto un post come questo utilizzando Fiddler, e funziona:
intestazioni:
User-Agent: Fiddler
Authorization: key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0Lu8D
Host: android.googleapis.com
Content-Length: 220
Content-Type: application/json
Richiesta di corpo:
{
"registration_ids" : ["APA91bEM6XPdiZv5VgNNApakfyYfZwB871018Hljl1L27kaPvksasnR0bHlmcCZFxOSPD6bDLMZgvgfT9xsKnF6Tg0oSQM2cMM1KRbuK7cR7jICqAnSDYg_SvERTzPMT8puXGTlVkEVH6dsneBkXiBu6pZikWXWyRATAVbXnAHTe20-nQerb0"],
}
Hai provato a impostare la proprietà 'Autorizzazione' sulle intestazioni invece di provare a 'Aggiungi' una nuova? –
E anche 'client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue ("chiave", "AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w");' –
@ Joel Allison: ho provato, e poi il colpo di testa viene "AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w chiave". Non includeva il segno "=". –