Я хочу преобразовать следующий (рабочий) фрагмент curl в вызов RestTemplate:
curl -i -X POST -d "email=first.last@example.com" https://app.example.com/hr/email
Как правильно передать параметр электронной почты? Следующий код приводит к ответу 404 Not Found:
String url = "https://app.example.com/hr/email";
Map<String, String> params = new HashMap<String, String>();
params.put("email", "first.last@example.com");
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.postForEntity( url, params, String.class );
Я попытался сформулировать правильный вызов в PostMan, и я могу заставить его работать правильно, указав параметр email в качестве параметра «form-data» в теле. Как правильно достичь этой функциональности в RestTemplate?
Ответы:
Метод POST должен быть отправлен вдоль объекта HTTP-запроса. И запрос может содержать либо заголовок HTTP или тело HTTP, либо оба.
Поэтому давайте создадим объект HTTP и отправим заголовки и параметры в теле.
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html#postForObject-java.lang.String-java.lang.Object-java.lang. Класс-java.lang.Object ...-
источник
ResponseEntity<String> response = new RestTemplate().postForEntity(url, request, String.class);
Я получаюorg.springframework.http.converter.HttpMessageNotWritableException: Could not write content: No serializer found for class java.util.Collections$3
args
curl -X POST --data '{"file": "/xyz.jar", "className": "my.class.name", "args": ["100"]}' -H "Content-Type: application/json" localhost:1234/batches
Как разместить смешанные данные: File, String [], String в одном запросе.
Вы можете использовать только то, что вам нужно.
Запрос POST будет иметь File в своем теле и следующую структуру:
источник
Вот полная программа для вызова POST rest с использованием Spring RestTemplate.
источник
ResponseEntity<?> response = new RestTemplate().postForEntity(url, request, String.class);
, Я получаюorg.springframework.http.converter.HttpMessageNotWritableException: Could not write content: No serializer found for class java.util.Collections$3
application/json
тип содержания, которыйapplication/x-www-form-urlencoded
вы получите org.springframework.web.client.RestClientException: Нет HttpMessageConverter для java.util.HashMap и типа содержимого «применение / х-WWW-форм-urlencoded» - см stackoverflow.com/q / 31342841/355438Ваша строка url нуждается в переменных маркерах для карты, которую вы передаете на работу, например:
Или вы могли бы явно кодировать параметры запроса в String для начала и не передавать карту вообще, например:
Смотрите также https://stackoverflow.com/a/47045624/1357094
источник