我想使用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