我想使用GCM一次向多个注册设备发送多个通知,并且我知道这不能使用纯文本完成,因为它只能用于发送一个设备的通知在时间。所以不是我决定使用JSON HTTP主体内容和我设法让下面的字符串表示JSON对象:使用JSON发送多通知到GCM
{ collapse_key : my_CollapseKey, data.message : myMessage, registration_ids : ["regid1","regid2",...] }
但每当我发送请求我得到一个400响应其中指出错误的请求,并当我参考文档GCM Architectural Overview时,它指出
响应400仅适用于JSON请求。指示请求不能被解析为JSON,或者它包含无效的字段(例如,通过其中的一些预期的字符串)
这是从我的web应用程序的快照在ASP.Net开发了我用于发送请求:
request.ContentType = "application/json"
request.Headers.Add("Authorization: key=My_Server_Key")
request.Headers.Add("Sender: id=myProject_ID")
Dim collapsKey = Guid.NewGuid.ToString("n")
Dim data As String = "{ collapse_key : " + collapsKey + "," + " data.message : " + HttpUtility.UrlEncode(TextBox1.Text) + "}" + ", registration_ids : " + jsonids1 + "}"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(data)
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
任何想法如何我可以正确解析我的JSON对象并发送多个通知? 任何帮助将完全赞赏。
问候
是IT registration_id或registration_ids,因为我想在此发送多个 – 2013-02-15 16:16:02
对不起,将其固定到registration_ids。 – Eran 2013-02-15 16:18:54
我尝试了你的建议,但没有奏效,我真的没有意识到为数据创建字典 – 2013-02-15 16:38:50