Spring RestTemplate:403 异常(有时)

Spring RestTemplate: 403 Exception (sometimes)

我有一个 RestTemplate 调用 API (get)。这个调用,是我们唯一的 GET 类型,并通过代理。似乎 有时 在一周内,调用 returns 403 禁止访问,但有以下例外:“sun.security.validator.ValidatorException”

我们有一个介于 Spring 和 API 之间的证书,但证书工作正常(应用程序 returns 一天内有数千个“200 ok”)。

但有时,只有这个调用(不是其他POST)returns“403 Forbidden”。

我们已经完成了:

这是 RestTemplate 代码:

SSLConnectionSocketFactory socketFactory;
socketFactory = new SSLConnectionSocketFactory(new SSLContextBuilder()
    .loadTrustMaterial(ResourceUtils.getFile(this.trustStorePath), this.trustStorePassword.toCharArray())
    .loadKeyMaterial(ResourceUtils.getFile(this.keyStorePath), this.keystorePassword.toCharArray(),
        this.keystorePassword.toCharArray())
    .build(), NoopHostnameVerifier.INSTANCE);


CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(socketFactory).setProxy(host)
    .disableCookieManagement().disableRedirectHandling().build();

ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(client);

RestTemplate restTemplateVar = new RestTemplate(requestFactory);

这是调用:

response = this.restTemplate.getForEntity(this.host, String.class);

提前致谢

设置此属性效果很好(取决于您的指标)

.setMaxConnTotal(1000)
.setMaxConnPerRoute(40)

CloseableHttpClient client = HttpClients.custom()
.setSSLSocketFactory(socketFactory)
.setProxy(host)
.disableCookieManagement()
.disableRedirectHandling()
.setMaxConnTotal(1000)        
.setMaxConnPerRoute(40)
.build();