Итак, я работаю над клиентом REST, который использует API REST для получения списка объектов json, используя Spring RestTemplate.Я устанавливаю необходимые заголовки с помощью ключа API.Таким образом, я получаю ответ HTTP 200 OK, но тело ответа пусто.Когда я делаю тот же запрос, используя Почтальон, он работает хорошо.Что может быть причиной этого?
Фрагмент кода:
public List<PoyntSubscription> getSubscriptions(String apiToken, String cloudId, String cloudBaseUrl) {
List<PoyntSubscription> subscriptions = new ArrayList<>();
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Api-Version", "1.2");
headers.set("Authorization", apiToken);
HttpEntity entity = new HttpEntity(headers);
ResponseEntity<PoyntSubscription> response = restTemplate.exchange(
cloudBaseUrl + cloudId + "/subscriptions?start=10", HttpMethod.GET, entity, PoyntSubcriptionsList.class);
return response.getBody().getSubscriptions();
}
Ответ json, который я получаю, когда API используется почтальоном:
{
"list": [
{
"startAt": "2019-01-22T00:00:00Z",
"paymentStatus": "OVERDUE",
"createdAt": "2019-01-22T03:05:28Z",
"updatedAt": "2019-02-21T03:05:28Z",
"businessId": "xxxx",
"appId": "xxxx",
"subscriptionId": "xxxxx",
"phase": "FULL",
"planId": "xxxx",
"bundleId": "xxxx",
"planName": "xxxx",
"status": "ACTIVE"
}
],
"start": 10,
"total": 14,
"count": 4
}
Класс оболочки PoyntSubscription:
public class PoyntSubcriptionsList {
private List<PoyntSubscription> subscriptions = new ArrayList();
public PoyntSubcriptionsList() {
}
public List<PoyntSubscription> getSubscriptions() {
return this.subscriptions;
}
public void setSubscriptions(List<PoyntSubscription> subscriptions) {
this.subscriptions = subscriptions;
}
}
Класс PoyntSubscription:
public class PoyntSubscription {
private String startedDate;
private String paymentStatus;
private String createdDate;
private String updatedDate;
private String businessId;
private String appId;
private String subscriptionId;
private String phase;
private String planId;
private String bundleId;
private String planName;
private String status;
public PoyntSubscription() {
}