And*_*erd 6 .net dotnet-httpclient google-cloud-messaging
我正在尝试使用该System.Net.HttpClient课程向Google Cloud Messaging发送消息.
Google Cloud Message要求您包含名为"授权"的标头,其格式类似于:
key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0Lu8D
Run Code Online (Sandbox Code Playgroud)
但是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
Run Code Online (Sandbox Code Playgroud)
例外是类型System.FormatException.信息是
值'key = AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0LJ0w'的格式无效.
而callstack是:
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)
Run Code Online (Sandbox Code Playgroud)
如何在没有抛出异常的情况下将此标头添加到此发布请求中?
头:
User-Agent: Fiddler
Authorization: key=AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0Lu8D
Host: android.googleapis.com
Content-Length: 220
Content-Type: application/json
Run Code Online (Sandbox Code Playgroud)
请求机构:
{
"registration_ids" : ["APA91bEM6XPdiZv5VgNNApakfyYfZwB871018Hljl1L27kaPvksasnR0bHlmcCZFxOSPD6bDLMZgvgfT9xsKnF6Tg0oSQM2cMM1KRbuK7cR7jICqAnSDYg_SvERTzPMT8puXGTlVkEVH6dsneBkXiBu6pZikWXWyRATAVbXnAHTe20-nQerb0"],
}
Run Code Online (Sandbox Code Playgroud)
那是因为您的价值违反了 HTTP 规范。
标题应包含Authorization: scheme SPACE value如下所述:http : //www.ietf.org/rfc/rfc2617.txt
在你的情况下:
Authorization: key AIzaSyBxFuZ9IbtGbJHX6F5wdTc1mHnB7i0Lu8D
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5989 次 |
| 最近记录: |