无法通过从 C# 发送 Web 请求来生成用户notification_key

本文关键字:用户 notification key 请求 Web 发送 | 更新日期: 2023-09-27 18:36:46

我想为 android 应用程序用户生成用户notification_key。但是当我运行代码时,我收到一个错误:"远程服务器返回错误:(400) 错误请求。

WebResponse tResponse = tRequest.GetResponse();

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net ;
using System.IO ;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void SubmitButton1_Click(object sender, EventArgs e)
    {
      AndroidPush();  // calling android push method
    }
    //Android push message to GCM server method
    private void AndroidPush()
    {
      var SENDER_ID = "76**********7";
      WebRequest tRequest;
      tRequest = WebRequest.Create("https://android.googleapis.com/gcm/notification");
      tRequest.Method = "post";
      tRequest.ContentType = "application/json";
      tRequest.Headers.Add(string.Format("project_id: id={0}", SENDER_ID));
      tRequest.Headers.Add("Authorization", "key=AIz************************hpc");
      string json = "{'"operation'": '"create'" , '"notification_key_name'": '"gh******9p'", '"registration_ids'": ['"APA91b****************************************jJig'"]}";
      Byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(json);
      tRequest.ContentLength = byteArray.Length;
      Stream dataStream = tRequest.GetRequestStream();
      dataStream.Write(byteArray, 0, byteArray.Length);
      dataStream.Close();
      WebResponse tResponse = tRequest.GetResponse();
      dataStream = tResponse.GetResponseStream();
      StreamReader tReader = new StreamReader(dataStream);
      String sResponseFromServer = tReader.ReadToEnd();   //Get response from GCM server.
      Label1.Text = sResponseFromServer;      //Assigning GCM response to Label text
      tReader.Close();
      dataStream.Close();
      tResponse.Close();
    }

}

无法通过从 C# 发送 Web 请求来生成用户notification_key

你的代码似乎很好。我什至测试了它,它在我进行了小的更正后可以工作:请注意,notification_key_name就是您选择用于命名"组/频道"的名称,似乎您正在发送某种密钥。此外,您可能希望跟踪服务响应,它将为您提供一个密钥,稍后需要广播通知。您必须意识到,创建组后,如果您尝试使用相同的"notification_key_name"再次创建组,则服务请求将以"400 错误请求"进行响应,这一点非常重要。可能,这正是你现在正在发生的事情。