I am trying to set a timeout on my WebClient, here is the current code:
SslContext sslContext = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build(); ClientHttpConnector httpConnector = new ReactorClientHttpConnector(opt -> { opt.sslContext(sslContext); HttpClientOptions option = HttpClientOptions.builder().build(); opt.from(option); }); return WebClient.builder().clientConnector(httpConnector).defaultHeader("Authorization", xxxx) .baseUrl(this.opusConfig.getBaseURL()).build();
I need to add a timeout, as well as a merge strategy, I was thinking about something like this:
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); cm.setMaxTotal(this.applicationConfig.getHttpClientMaxPoolSize()); cm.setDefaultMaxPerRoute(this.applicationConfig.getHttpClientMaxPoolSize()); cm.closeIdleConnections(this.applicationConfig.getServerIdleTimeout(), TimeUnit.MILLISECONDS); RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(this.applicationConfig.getHttpClientSocketTimeout()) .setConnectTimeout(this.applicationConfig.getHttpClientConnectTimeout()) .setConnectionRequestTimeout(this.applicationConfig.getHttpClientRequestTimeout()).build(); CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).setConnectionManager(cm).build();
But I can not figure out how to install httpClient in my web client
source share