2016-08-11 2 views
0

Я пытаюсь отправить сообщение в Ionic Push API, я правильно построил корпус Json, но он говорит: «Не найдено подходящего HttpMessageConverter для запроса типа [com. amazonaws.util.json.JSONObject]».RestTemplate Java Spring, не подходит HttpMessageConverter и 422 UnprocessableEntity

Когда я добавляю HttpMessageConverter, я получаю 422 UnprocessableEntity от Ionic.

Вот код (код в комментарий является MessageConverter):

//  MappingJackson2HttpMessageConverter jsonHttpMessageConverter = new MappingJackson2HttpMessageConverter(); 
//  jsonHttpMessageConverter.getObjectMapper().configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); 
//  template.getMessageConverters().add(jsonHttpMessageConverter); 

     headers.add("Authorization", "Bearer <MY API KEY>"); 
     headers.add("Content-Type", "application/json"); 
     String pushMessage = "From : " + notification.getFrom().getNickname() + " Type : " + notification.getNotificationType(); 
     JSONObject body = new JSONObject(); 
     JSONObject message = new JSONObject(); 
     JSONArray deviceTokens = new JSONArray(); 
     try { 
      deviceTokens.put("DEV-75c960b5-fa90-4da7-b7df-8c1a01f80bdb"); 
      message.put("message", pushMessage); 
      body.put("notification", message); 
      body.put("profile", "dev_push"); 
      body.put("tokens", deviceTokens); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     template.exchange("https://api.ionic.io/push/notifications", HttpMethod.POST, new HttpEntity<>(body, headers), String.class); 

От отладки Я знаю, что тело запроса соответствует структуре созданной ионического

{ 
    "notification": { 
      "message":"From : mathijs0032 Type : like" 
    }, 
    "profile": "dev_push", 
    "tokens": ["DEV-75c960b5-fa90-4da7-b7df-8c1a01f80bdb"] 
} 

Так проблема, вероятно, HttpMessageConverter?

ответ

1

Видимо есть Maven зависимость для отправки толчка GCM (не Ионный Push)

В конце концов мое приложение будет использовать GCM, потому что это бесплатно и отдельно от различных ионных услуг.

Хотя это НЕ ответ для отправки в Ionic API, возможно, после somme fiddling вы можете установить URL-адрес для Ionic Push API.

Maven зависимость:

<dependency> 
<groupId>com.ganyo</groupId> 
<artifactId>gcm-server</artifactId> 
<version>1.0.2</version> 
</dependency> 

ссылка на учебник: http://viveksoni.net/sending-gcm-notification-from-server-spring-framework-java/

Смежные вопросы