gpt4 book ai didi

spring - 如何停止 org.springframework.web.client.RestTemplate 缓存响应?

转载 作者:行者123 更新时间:2023-12-02 09:33:06 30 4
gpt4 key购买 nike

在我用于 REST HTTP 调用的 Spring-boot 项目中,我使用 org.springframework.web.client.RestTemplate。

问题在于它正在缓存响应,这意味着当我第一次调用它时,我会得到正确的响应,但是当我更新与当前 API 相关的服务器上的数据时以及当我第二次调用相同的 API 时时间它仍然返回旧的响应,所以它可能采用 ResponseEntity<T>来自缓存?我不确定..每次调用相同的 API 时如何获取最新版本的响应?

这是我如何进行 HTTP 调用

public <T> ResponseEntity<T> doQueryApi(String url, HttpMethod httpMethod, Object anyObject, HttpHeaders requestHeaders, Class<T> responseType) throws RestClientException {

HttpEntity requestEntity = new HttpEntity(anyObject, requestHeaders);
RestTemplate restTemplate = new RestTemplate();

ResponseEntity<T> responseEntity = restTemplate.exchange(url, httpMethod, requestEntity, responseType);
return responseEntity;
}
}

最佳答案

您可以尝试通过这种方式在请求 header 中强制执行无缓存请求:

// Force the request expires
requestHeaders.setExpires(0);
// Cache-Control: private, no-store, max-age=0
requestHeaders.setCacheControl("private, no-store, max-age=0");

我遇到了类似的问题,但效果很好。

关于spring - 如何停止 org.springframework.web.client.RestTemplate 缓存响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34685730/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com