, 2048 .
, UTF-8 , , , .
.
JSONObject jGcmData = new JSONObject();
jGcmData.put("to", "/topics/"+args[0].trim());
jGcmData.put("time_to_live", 300);
jGcmData.put("collapse_key", args[0].trim());
JSONObject jData = new JSONObject();
String message = readFile(args[1].trim(), Charset.forName("UTF-8"));
jData.put("message", message);
System.out.println("Data length: " + message.length());
jGcmData.put("data", jData);
System.out.println("Total GCM length: " + jGcmData.toString().getBytes("UTF-8").length);
URL url = new URL("https://android.googleapis.com/gcm/send");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Authorization", "key=" + API_KEY);
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestMethod("POST");
conn.setDoOutput(true);
DataOutputStream outputStream = new DataOutputStream(conn.getOutputStream());
outputStream.write(jGcmData.toString().getBytes("UTF-8"));
outputStream.flush();
outputStream.close();
InputStream inputStream = conn.getInputStream();
String resp = IOUtils.toString(inputStream);
System.out.println(resp);
System.out.println("SUCCESS!");