Добрый день, у меня проблема с моим кодом restTemplate, я запрашиваю веб-сервис, которому нужен TLS1.2, и я добавляю ssl в мой код с помощью CloseableHttpClient и работает нормально, но теперь мне нужно добавить перехватчики для журнала запрос и ответ, и есть проблема с этим.
Тело ответа является потоком, и если вы прочитаете его в перехватчике, RestTemplate не сможет десериализовать его в вашу объектную модель. Другими словами, я получаю объект ноль.
Решение, которое я нашел, - это использование BufferingClientHttpRequestFactory для моей restTemplate, но я не знаю, как добавить TLS1.2
вот мой код:
Конструктор
HttpComponentsClientHttpRequestFactory factory;
SSLContext sslContext = null;
try {
sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(null, null, null);
SSLConnectionSocketFactory connectionFactory = new SSLConnectionSocketFactory(sslContext,
new AllowAllHostnameVerifier());
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory> create().register("https", connectionFactory).build();
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build();
factory = new HttpComponentsClientHttpRequestFactory(httpClient);
} catch (Exception e) {
e.printStackTrace();
}
RestTemplate call
BargainFinderMaxRS bargainFinderMaxRS = new BargainFinderMaxRS();
try {
RestTemplate restTemplate = new RestTemplate(factory);
HttpHeaders headers = createHttpHeadersForBargainFinderMax(authentication);
HttpEntity<BargainFinderMaxRQ> request =
new HttpEntity<BargainFinderMaxRQ>(bargainFinderMaxRQ, headers);
restTemplate.setInterceptors(Collections.singletonList(
new ClientHttpInterceptor()));
bargainFinderMaxRS =
restTemplate.postForObject(bargainFinderMaxProperties.getUrl(), request, BargainFinderMaxRS.class);
} catch (Exception e) {
e.printStackTrace();
}
return bargainFinderMaxRS;
в этом коде bargainFinderMaxRS возвращает ноль
Кто-нибудь может мне помочь?