我想使用 GCM 一次向多个注册设备发送多个通知,我知道使用纯文本无法做到这一点,因为它只能用于一次发送一个设备的通知。因此,我决定使用 JSON 制作 HTTP 正文内容,并设法制作了以下表示 JSON 对象的字符串:
{ collapse_key : my_CollapseKey, data.message : myMessage, registration_ids : ["regid1","regid2",...] }
但是每当我发送请求时,我都会收到一个 400 响应,其中说明了错误请求,当我参考GCM 架构概述的文档时,它指出
响应 400 仅适用于 JSON 请求。表示请求无法解析为 JSON,或者它包含无效字段(例如,在需要数字的地方传递字符串)
这是我在 ASP.Net 中开发的用于发送请求的 Web 应用程序的快照:
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 对象并发送多个通知吗?任何帮助将不胜感激。
问候