我正在尝试呼叫(从 https://firebase.google.com/docs/cloud-messaging/ios/device-group(
检索通知密钥如果需要检索现有通知密钥
,请使用GET请求中的notification_key_name,如下所示:
https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris
Content-Type:application/json Authorization:key=API_KEY
project_id:SENDER_ID
{}
它看起来像一个带有消息正文和内容类型 (!( 的 GET。如果我发布它,我会收到有关丢失notification_key_name的错误。如果我使用 HttpClient 获取它,它会抱怨它不是 JSON 请求,如果我通过执行以下操作强制它具有内容类型:
_client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
它给了我同样的错误。如果我尝试使用 GET 请求发送"{}"的消息正文,HttpClient 拒绝发送它。关于如何使其工作的任何想法?
我无法让HttpClient这样做,不得不求助于使用HttpWebRequest。
var wr = (HttpWebRequest)WebRequest.Create("https://fcm.googleapis.com/fcm/notification?notification_key_name=" + name);
wr.Method = "GET";
wr.ContentType = "application/json";
wr.Headers.Add("Authorization", "key=" + applicationID);
wr.Headers.Add("project_id", senderId);
var resp = await wr.GetResponseAsync();
using (Stream stream = resp.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
return reader.ReadToEnd();
}