HttpClientBuilder httpClientBuilder = new HttpClientBuilder(environment);
httpClientBuilder.setConnectionTimeout(Duration.seconds(5));
httpClientBuilder.setRequestTimeout(Duration.seconds(10));
JerseyClientBuilder jerseyClientBuilder = new JerseyClientBuilder(environment);
jerseyClientBuilder.using(httpClientBuilder);
Client httpClient = jerseyClientBuilder.build("HttpClientName");
Response response = httpClient.target("https://api.example.com/endpoint")
.request()
.get();
if (response.getStatus() == 200) {
MyResponse myResponse = response.readEntity(MyResponse.class);
}
yaml
httpClientName:
connectionTimeout: 5000
requestTimeout: 10000
maxConnections: 10
public class MyAppConfiguration extends Configuration {
@JsonProperty("httpClientName")
private HttpClientConfiguration httpClientConfiguration;
public HttpClientConfiguration getHttpClientConfiguration() {
return httpClientConfiguration;
}
}
@Override
public void run(MyAppConfiguration configuration, Environment environment) {
HttpClientBuilder httpClientBuilder = new HttpClientBuilder(environment);
httpClientBuilder.setConnectionTimeout(
Duration.milliseconds(configuration.getHttpClientConfiguration().getConnectionTimeout()));
httpClientBuilder.setRequestTimeout(
Duration.milliseconds(configuration.getHttpClientConfiguration().getRequestTimeout()));
JerseyClientBuilder jerseyClientBuilder = new JerseyClientBuilder(environment);
jerseyClientBuilder.using(httpClientBuilder);
environment.jersey().register(jerseyClientBuilder.build("HttpClientName"));
}