Ответ 1
Вы используете метод postForEntity следующим образом:
ResponseEntity<String> response = restTemplate.postForEntity(url+restParm, null, String.class);
HttpStatus status = response.getStatusCode();
String restCall = response.getBody();
Я не знаком с Spring RestTemplate.
Но для этого проекта я должен использовать Spring RestTemplate для отправки вызова POST, чтобы использовать rest api.
Я использую этот код:
String restCall = restTemplate.postForObject(url+restParm, null, String.class);
Это нормально работает.
Я хотел бы получить код состояния HTTP (например: 200 OK.). Как я мог это сделать? Спасибо.
Вы используете метод postForEntity следующим образом:
ResponseEntity<String> response = restTemplate.postForEntity(url+restParm, null, String.class);
HttpStatus status = response.getStatusCode();
String restCall = response.getBody();
Это будет довольно странно, если RestTemplate не сможет получить ответ, как предложили другие. Это просто неправда.
Вы просто используете метод postForEntity
, который возвращает
И, как предполагает документация, объект ответа имеет статус.
Я хотел бы поделиться своим опытом использования Spring RestTemplate. Это действительно заняло меня много времени, чтобы исправить это. Мое требование: 1) Отправьте POST на серверURI с параметрами, установленными в теле HTTP. Параметры должны быть обернуты как данные формы. 2). Получите ответ с данными JSON в теле ответа, а настраиваемое имя класса передается в restTemplate. Результат: Alwasy получил NULL тело в ответ.
Я искал на веб-сайте и устал от всех предложений. тело все еще пусто. Поэтому я попытался сказать Spring просто вернуть String ко мне вместо myCustomized Class. Я видел, что строка JSON возвращается. Итак, причина, по которой тело ответа равно null, состоит в том, что Spring не может разобрать JSON для моего настраиваемого класса.
Наконец, я исправил проблему с NULL-корпусом, добавив аннотацию @JsonProperty в мое настроенное определение класса. (Я использовал @SerializedName в своем настраиваемом классе до и Spring не может разобрать JSON на мой объект)