我已经转寄了此链接以发送GCM请求,并且它工作正常。gcm与ASP.NET推送通知
我引用了另一个链接来发布JSON
如何将json发布到服务器
在第二个链接的基础上,我尝试了以下代码。
var httprequest = (HttpWebRequest)WebRequest.Create("https://gcm-http.googleapis.com/gcm/send");
httprequest.ContentType = "application/json";
httprequest.Method = "POST";
httprequest.Headers.Add(string.Format("Authorization: key={0}", GCM.APIKey));
httprequest.Headers.Add(string.Format("Sender: id={0}", GCM.ProjectNo));
using (var streamWriter = new StreamWriter(httprequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new GCMValues
{
delay_while_idle = false,
priority = "high",
registration_id = regId,
data = new MessagesValues
{
message = message
}
});
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httprequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
我使用过的属性
public class GCMValues
{
public Object data { get; set; }
public bool delay_while_idle { get; set; }
public String priority { get; set; }
public String registration_id { get; set; }
}
public class MessagesValues
{
public String message { get; set; }
public DateTime? time { get; set; }
}
我面临的问题是在线 var httpResponse =(HttpWebResponse)httprequest.GetResponse();
我收到错误要求的回应。我哪里做错了,或者可以做些什么以将JSON
格式的值传递给GCM
后期请求。提前致谢。
您不需要registration_ids
(复数)而不是registration_id
(单数)JSON。它是一个字符串数组,而不是单个字符串值。
如果您查看GCM文档,它将提供所有JSON选项。
在其他地方,文档详细说明了to
如果只有一个令牌向其发送通知的方式,如本例所示:
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句