Ошибка в отправке push-уведомлений программно с использованием Java-кода в приложении One Signal to android - PullRequest
0 голосов
/ 24 января 2019

Я попробовал приведенный ниже код из документации One Signal для отправки push-уведомлений на мобильный телефон. Но как-то не получилось и выкинуло исключение. Соответствующий ключ API был изменен. Я пытаюсь выполнить отладку на Android-студии, и существует ошибка "OutputStream outputStream = con.getOutputStream();". Возможно ли, что я могу программно настроить push-уведомления, используя этот код Java, пожалуйста, сообщите.

try {
String jsonResponse;



URL url = new URL("https://onesignal.com/api/v1/notifications");
   HttpURLConnection con = (HttpURLConnection)url.openConnection();
   con.setUseCaches(false);
   con.setDoOutput(true);
   con.setDoInput(true);

   con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
   con.setRequestProperty("Authorization", "Basic NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj");
   con.setRequestMethod("POST");

   String strJsonBody = "{"
                      +   "\"app_id\": \"5eb5a37e-b458-11e3-ac11-000c2940e62c\","
                      +   "\"included_segments\": [\"All\"],"
                      +   "\"data\": {\"foo\": \"bar\"},"
                      +   "\"contents\": {\"en\": \"English Message\"}"
                      + "}";


   System.out.println("strJsonBody:\n" + strJsonBody);

   byte[] sendBytes = strJsonBody.getBytes("UTF-8");
   con.setFixedLengthStreamingMode(sendBytes.length);

   OutputStream outputStream = con.getOutputStream();
   outputStream.write(sendBytes);

   int httpResponse = con.getResponseCode();
   System.out.println("httpResponse: " + httpResponse);

   if (  httpResponse >= HttpURLConnection.HTTP_OK
      && httpResponse < HttpURLConnection.HTTP_BAD_REQUEST) {
      Scanner scanner = new Scanner(con.getInputStream(), "UTF-8");
      jsonResponse = scanner.useDelimiter("\\A").hasNext() ? scanner.next() : "";
      scanner.close();
   }
   else {
      Scanner scanner = new Scanner(con.getErrorStream(), "UTF-8");
      jsonResponse = scanner.useDelimiter("\\A").hasNext() ? scanner.next() : "";
      scanner.close();
   }
   System.out.println("jsonResponse:\n" + jsonResponse);

   } catch(Throwable t) {
   t.printStackTrace();
   }
...