Я написал этот код при весенней загрузке (я использую Intellij IDE). В коде androidFcmUrl = "https://fcm.googleapis.com/fcm/send". androidFcmKey = ключ моего сервера. DeviceToken = идентификатор устройства.
@RequestMapping(value = "/pushNotification", method = RequestMethod.GET)
public void pushNotification() {
try {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.set("Content-Type","application/json; UTF-8");
httpHeaders.set("Authorization", "key=" + androidFcmKey);
JSONObject msg = new JSONObject();
JSONObject json = new JSONObject();
msg.put("title", "Title");
msg.put("body", "Message");
msg.put("notificationType", "Test");
json.put("data", msg);
json.put("notification",msg);
json.put("to", deviceToken);
HttpEntity<String> httpEntity = new HttpEntity<>(json.toString(), httpHeaders);
String response = restTemplate.postForObject(androidFcmUrl, httpEntity, String.class);
System.out.println(response);
} catch (JSONException e) {
e.printStackTrace();
}
}
Iполучаю внутреннюю ошибку сервера Status 500.
2018-11-28 17: 42: 47.712 ОШИБКА 15292 --- [nio-8088-exec-2] oaccC [. [. [/]. [dispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] в контексте с путем [] вызвало исключение [Ошибка обработки запроса; вложенное исключение - org.springframework.web.client.ResourceAccessException: ошибка ввода-вывода при запросе POST для "https://fcm.googleapis.com/fcm/send": Тайм-аут соединения: соединение;Вложенное исключение - java.net.ConnectException: Тайм-аут соединения: соединение] с основной причиной.
Но когда я нажимаю на почтальона API-формы с той же полезной нагрузкой, я получаю ответ об успешном завершении с идентификатором сообщения.