首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用RestTemplate交换获取数据?

如何使用RestTemplate交换获取数据?
EN

Stack Overflow用户
提问于 2021-09-25 18:04:24
回答 1查看 43关注 0票数 0

我目前正在发送一个在响应中返回null正文的GET request

代码语言:javascript
复制
@Service
public class CarService {
private RestTemplate restTemplate;
private final String url = "url";
private final String accessToken = "x";

@Autowired
public CarService () throws URISyntaxException {
    restTemplate = new RestTemplate();
}

public void fetchCars() throws URISyntaxException {
    HttpHeaders headers = new HttpHeaders();
    headers.setBearerAuth(accessToken);
    headers.setAccept(List.of(MediaType.APPLICATION_JSON));
    ResponseEntity<CarList> carList = restTemplate.exchange
            (RequestEntity.get(new URI(url)).headers(headers).build(), CarList.class);
}

}

CarList.class如下所示:

代码语言:javascript
复制
@JsonIgnoreProperties(ignoreUnknown = true)
public class CarList{
    private List<Car> carList;

    public CarList(List<Car> carList) {
        this.carList= carList;
    }

    public CarList() {
    }

    public List<Car> getCarList() {
        return carList;
    }

    @Override
    public String toString() {
        return "CarList{" +
                "carList=" + carList +
                '}';
    }
}

Postman中的响应如下所示:

代码语言:javascript
复制
{
    "cars": [
        {
            "carUid": "aaaa-ccc-dd-cc-ee",
            "model": "hyundai",
            "price": 20000,
            "soldAt": "2021-09-24T22:10:15.307Z"
        }
    ]
}

我是不是遗漏了什么?这是我第一次尝试从客户端消费,所以考虑到我可能会错过的最基本的东西。

我已经用给定的accessToken在Postman中测试了GET请求,它工作得很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-25 18:09:02

您的carList对象是私有的,请尝试为该对象提供一个setter方法,如果约定良好,反序列化将正常工作。

代码语言:javascript
复制
@JsonIgnoreProperties(ignoreUnknown = true)
public class CarList{
    private List<Car> carList;

    public CarList(List<Car> carList) {
        this.carList= carList;
    }

    public CarList() {
    }

    public List<Car> getCarList() {
        return carList;
    }

    public setCarList(List<Car> carList) {
        this.carList= carList;
    }

    @Override
    public String toString() {
        return "CarList{" +
                "carList=" + carList +
                '}';
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69328795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档