2013-09-04 3 views
0

Я использую GCM (Google Cloud Messaging). В этом я хочу, чтобы я отправил J Son со стороны сервера. На стороне клиента я хочу получить это для простого сообщения, которое у меня есть но я застрял, как я могу передать J Son со стороны сервера на клиентскую сторону.Отправить JSon от сервера к клиенту в GCM

Пожалуйста, помогите мне решить эту проблему.

Это мой стороне сервера код

public class GCMBroadcast extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    private static final String SENDER_ID = ""; 
    private static final String ANDROID_DEVICE = ""; 
    private List<String> androidTargets = new ArrayList<String>(); 
    public GCMBroadcast() { 

     super(); 
     androidTargets.add(ANDROID_DEVICE); 

    } 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String collapseKey = ""; 
     String userMessage = ""; 

     try { 
      userMessage = request.getParameter("Message"); 
      collapseKey = request.getParameter("CollapseKey"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      return; 
     } 
     Sender sender = new Sender(SENDER_ID); 
     Message message = new Message.Builder() 


     .collapseKey(collapseKey) 
     .addData("message", userMessage) 
     .build(); 

     try { 

      MulticastResult result = sender.send(message, androidTargets, 1); 
      System.out.println("Response: " + result.getResults().toString()); 
      if (result.getResults() != null) { 

       int canonicalRegId = result.getCanonicalIds(); 
       if (canonicalRegId != 0) { 
        System.out.println("response " +canonicalRegId); 
       } 
      } else { 
       int error = result.getFailure(); 
       System.out.println("Broadcast failure: " + error); 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 


     request.setAttribute("CollapseKey", collapseKey); 
     request.setAttribute("Message", userMessage); 

     request.getRequestDispatcher("XX.jsp").forward(request, response); 

    } 

} 

ответ

0

Ваш (добавляется к Message звонками к addData) полезная нагрузка может быть только пары имя/значение. Если вы хотите отправить JSON, вы можете поместить строку JSON в значение такой пары имя/значение. Тогда вам придется проанализировать этот JSON на стороне клиента.

Например:

.addData("message","{\"some_json_key\":\"some_json_value\"}")