s我有一个使用Core 2.0构建 ASP.NET Web API。我正在尝试调用 Firebase Cloud Messaging HTTP v1,以向移动客户端发送推送通知。根据文档,您需要调用此终结点:
发布 https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send
当我尝试进行此调用(使用我的令牌(时,我收到一条错误消息,有关仅允许 http 和 https:
只允许使用"http"和"https"方案。 参数名称:请求
这条错误消息让我认为 HttpClient 的 Uri 的 :send 部分有问题。这是我为此编写的代码:
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://fcm.googleapis.com/v1/projects/my-project-id/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new
System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
var jsonMessage = JsonConvert.SerializeObject(message);
var stringConent = new StringContent(jsonMessage, System.Text.Encoding.UTF8, "application/json");
var fcmCall = await client.PostAsync("messages:send", stringConent);
我可以尝试什么来解决这个问题?非常感谢。
链接到FCM:https://firebase.google.com/docs/cloud-messaging/send-message
您应该在请求 URI 中对冒号 (:
( 进行编码。您可以为其使用WebUtility
类:
System.Net.WebUtility.UrlEncode("messages:send")