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