我試圖使用System.Net.HttpClient
類將消息發佈到Google Cloud Messaging。將自定義字符串放入System.Net.HttpClient的「授權」標題中
谷歌雲消息需要你有一個名爲「授權」頭,在類似這樣的格式:
key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0Lu8D
但是當我嘗試這個HttpClient
類拋出異常。
string keyString = "key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Foo", keyString); // <== Proving I can
client.DefaultRequestHeaders.Add("Authorization", keyString); // Exception thrown
例外類型是System.FormatException
。該消息是
值「鍵= AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w」的格式是 無效。
而且調用堆棧是:
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)
我怎樣才能得到這頭到無例外這個post請求被拋出?
順便說一句,我已經由一個像這樣的帖子使用招,和它的作品:
頁眉:
User-Agent: Fiddler
Authorization: key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0Lu8D
Host: android.googleapis.com
Content-Length: 220
Content-Type: application/json
請求正文:
{
"registration_ids" : ["APA91bEM6XPdiZv5VgNNApakfyYfZwB871018Hljl1L27kaPvksasnR0bHlmcCZFxOSPD6bDLMZgvgfT9xsKnF6Tg0oSQM2cMM1KRbuK7cR7jICqAnSDYg_SvERTzPMT8puXGTlVkEVH6dsneBkXiBu6pZikWXWyRATAVbXnAHTe20-nQerb0"],
}
你是否嘗試在頭上設置'Authorization'屬性,而不是嘗試'添加'一個新的? –
並且還'client.DefaultRequestHeaders.Authorization =新AuthenticationHeaderValue( 「鍵」, 「AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w」);' –
@Joel艾裏:我嘗試的是,然後將報頭是 「鍵AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w」。它不包含'='標誌。 –