2011-10-11 3 views
0

Utilisez les notifications push urban dirigeable pour Android. En cela, je veux utiliser la diffusion pour envoyer des notifications à tous mes utilisateurs. En utilisant cela, je reçois 400 erreur de demande incorrecte.URL de charge utile JSON Problème android

S'il vous plaît me dire ce qui est erroné dans mon code:

Authenticator.setDefault(new Authenticator() { 
        protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication("sixxxxxxw","YSxxxxxxxxxx:Fxxxxxxxxxxxx".toCharArray()); 
         } 
       }); 

      URL url = new URL("https://go.urbanairship.com/api/airmail/send/broadcast/"); 
      HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); 
      connection.setRequestMethod("POST"); 
      connection.setDoOutput(true); 
      connection.setDoInput(true); 
      connection.setUseCaches(false); 


      connection.setRequestProperty("Content-Type","application/json"); 
      //connection.setRequestProperty("Content-Length", Integer.toString(data.length())); 
      JSONObject json = new JSONObject(); 
      json.put("title","My title"); 
      json.put("message","My message"); 



      try { 
       output = connection.getOutputStream(); 
       output.write(json.toString().getBytes()); 
      } finally { 
       if (output != null) { output.close(); } 
      } 

      int status = ((HttpURLConnection) connection).getResponseCode(); 
      System.out.println("status is..." + status); 

JSON Payload réelle que je veux envoyer est:

{ 
    "push": { 
     "aps": { 
      "alert": "New message!" 
     } 
    }, 
    "title": "Message title", 
    "message": "Your full message here.", 
    "extra": { 
     "some_key": "some_value" 
    } 
} 

ou encore si vous avez sample code for using urban airpship push notifications broadcast api s'il vous plaît partager ici.

Comment envoyer ce payload à l'aide de HttpsURLConnection.?

Merci

Répondre

1

Voici comment « construire » votre JSON Charge utile:

 JSONObject json = new JSONObject(); 
     JSONObject push = new JSONObject(); 
     JSONObject aps = new JSONObject(); 
     JSONObject extra = new JSONObject(); 
     aps.put("alert", "New message!"); 
     push.put("aps", aps); 
     json.put("push", push); 
     json.put("title","My title"); 
     json.put("message","My message"); 
     extra.put("some_key","some_value"); 
     json.put("extra", extra); 
+0

suis toujours obtenir le code de réponse 400 .. – Udaykiran

+0

I ajouté json.put ("extra", extra); également en bas toujours la même erreur – Udaykiran

+0

Êtes-vous sûr que votre URL est correcte? Il devrait se terminer par quelque chose comme .../boardcast.json –

0

JSON vous créez dans votre code ne contient que le titre et le message. Lacks

"push": { 
    "aps": { 
     "alert": "New message!" 
    } 
}, 

et

"extra": { 
    "some_key": "some_value" 
} 

non?

+0

Oui mais je thght des valeurs qui sont nécessaires seront envoyés .. – Udaykiran