尝试使用RestTemplate获取对象列表时响应主体为空

GeekySelene:

所以我正在使用REST客户端的REST客户端上使用Spring RestTemplate获取json对象的列表。我正在使用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();
}

当邮递员使用API​​时,我得到的响应json是:

{
"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() {
}
uneq95:

在课堂上getSubscriptions()注释@JsonGetter("list")PoyntSubcriptionsList

您还需要更改ResponseEntity<PoyntSubscription> responseResponseEntity<PoyntSubcriptionsList> responseas PoyntSubcriptionsList表示您的JSON。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

改造响应主体为空

使用Spring RestTemplate获取JSON对象的列表

断言响应主体为空列表,并保证

尝试解析JSON时Spring RestTemplate响应主体为null

响应具有错误状态时为空主体(Apache CXF)

尝试使用Springs RestTemplate执行POST请求时获取RestClientException

当尝试反序列化对象的嵌套列表时,Spring RestTemplate返回null对象

Spring RestTemplate:BadRequest 400,为空。在调用获取请求时

使用restTemplate的REST API的响应值为空

从响应对象获取请求主体

改造2-响应状态为422时,响应主体为空(不可处理实体)

Ruby on Rails从fcm响应获取主体对象

使用提取时,请求主体为空

尝试使用restTemplate发布到chatbase时为500

获取错误尝试填充对象列表时找不到类型为“对象”的其他支持对象“ [对象对象]”

尝试从UserDefaults中获取数据时为空时出错

使用Retrofit2在响应主体上获取空数据?

尝试POST时无法从请求主体获取对象的值[Node.js,MySQL]

尝试使用模型表单集保存时,工厂获取的“列表”对象没有属性“事件”

响应主体为空(获取请求)

GET请求的响应主体为空

响应主体为空API

响应主体带有正确的对象计数数组,但对象为空

尝试从Service提取模拟数据时为空响应

从React组件调用端点时,即使网络调用显示响应主体,后端响应值也为空

尝试使用AJAX上载文件时,FormData对象始终为空

API获取时为空列表属性

尝试封装时获取“空对象引用”

RestTemplate - 当响应主体为空时处理潜在的 NullPointerException