POST-запрос через RestTemplate в JSON - PullRequest
111 голосов
/ 02 ноября 2010

Я не нашел ни одного примера, как решить мою проблему, поэтому я хочу попросить вас о помощи. Я не могу просто отправить запрос POST, используя объект RestTemplate в JSON

Каждый раз, когда я получаю:

org.springframework.web.client.HttpClientErrorException: 415 неподдерживаемый тип носителя

Я использую RestTemplate таким образом:

...
restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> list = new ArrayList<HttpMessageConverter<?>>();
list.add(new MappingJacksonHttpMessageConverter());
restTemplate.setMessageConverters(list);
...
Payment payment= new Payment("Aa4bhs");
Payment res = restTemplate.postForObject("http://localhost:8080/aurest/rest/payment", payment, Payment.class);

В чем моя вина?

Ответы [ 12 ]

0 голосов
/ 16 мая 2019

Зачем работать усерднее, чем надо?postForEntity принимает простой Map объект в качестве ввода.Следующее прекрасно работает для меня при написании тестов для данной конечной точки REST в Spring.Я считаю, что это самый простой способ сделать запрос JSON POST в Spring:

@Test
public void shouldLoginSuccessfully() {
  // 'restTemplate' below has been @Autowired prior to this
  Map map = new HashMap<String, String>();
  map.put("username", "bob123");
  map.put("password", "myP@ssw0rd");
  ResponseEntity<Void> resp = restTemplate.postForEntity(
      "http://localhost:8000/login",
      map,
      Void.class);
  assertThat(resp.getStatusCode()).isEqualTo(HttpStatus.OK);
}
0 голосов
/ 05 мая 2015

Для меня произошла ошибка с этой настройкой:

AndroidAnnotations Spring Android RestTemplate Module и ...

GsonHttpMessageConverter

В аннотациях Android есть некоторые проблемы с этимсгенерировать POST запрос без параметра.Просто параметр new Object() решил это за меня.

...