В настоящее время я создаю клиент REST, который имеет почти такой же код, что и в руководстве Consuming a RESTful Web Service. Этот простой пример отлично работает при получении действительных ответов JSON, но поскольку я также занимаюсь разработкой веб-службы, я хотел бы иметь возможность захватить содержимое сырого ответа в случае, если ответ недействителен JSON (без необходимости отправки запроса дважды).Весна улавливает все типы откликов
Поэтому в основном руководство сводится к этому коду:
RestTemplate restTemplate = new RestTemplate();
Page page = restTemplate.getForObject("http://graph.facebook.com/gopivotal", Page.class);
System.out.println("Name: " + page.getName());
System.out.println("About: " + page.getAbout());
System.out.println("Phone: " + page.getPhone());
System.out.println("Website: " + page.getWebsite());
И на основе этого класса:
package hello;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Page {
private String name;
private String about;
private String phone;
private String website;
public String getName() {
return name;
}
public String getAbout() {
return about;
}
public String getPhone() {
return phone;
}
public String getWebsite() {
return website;
}
}
Теперь представьте, что ответ не действует в формате JSON (из-за ошибки в webservice или так) или даже, что тип ответа не application/json
, как я могу зарегистрировать тело ответа как обычный текст? То есть как я могу получить доступ к телу ответа в виде обычного текста, когда эта линия не может:
Page page = restTemplate.getForObject("http://graph.facebook.com/gopivotal", Page.class);
PS: Я наткнулся на this question - который никогда не получил ответа - и хотя я не уверен, я думаю, что фактическое намерение этого кода соответствует моему вопросу.
Спасибо, это было то, что я искал! – DePhille