如何阻止org.springframework.web.client.RestTemplate缓存响应?

时间:2016-01-08 20:43:02

标签: spring caching resttemplate

在我的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;
    }
}

1 个答案:

答案 0 :(得分:1)

您可以尝试以这种方式强制请求标头中的非缓存请求:

<div ng-class="{'checkedClass': vm.siteLoadedSuccess, 'uncheckedClass': !vm.siteLoadedSuccess}">

我有类似的问题而且工作正常。