Envoyer Multi Notification de la GCM, à l'aide de JSON

Je veux envoyer des notifications multiples pour de nombreux appareils enregistrés à la fois à l'aide de GCM, et je sais que cela ne peut pas être fait à l'aide de la plaine de texte, car il ne peut être utilisé pour envoyer une notification pour un seul appareil à la fois. Donc à la place j'ai décidé de faire le corps HTTP du contenu à l'aide de JSON et j'ai réussi à faire la chaîne de caractères qui représente l'objet JSON:

{ collapse_key : my_CollapseKey, data.message : myMessage,  registration_ids : ["regid1","regid2",...] }

Mais à chaque fois que j'envoie la demande-je obtenir un 400 réponse des états Bad Request, et quand je me réfère au document de GCM Présentation de l'Architecture il affirme que

Réponse de 400 ne s'applique que pour JSON demandes. Indique que la demande n'a pas pu être analysée comme JSON, ou il contenait des champs non valides (par exemple, passage d'une chaîne où un certain nombre a été prévu)

Ici est l'instantané à partir de mon application web développée en ASP.Net que j'ai utilisé pour envoyer la demande:

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()

Aucune idée de comment je peut analyser mon objet JSON correctement et envoyer des notifications multiples?
toute aide sera complètement apprécié.

ce qui concerne

OriginalL'auteur Husam A. Al-ahmadi | 2013-02-15