package at.gv.egiz.eaaf.core.impl.http; import javax.annotation.Nonnull; import org.apache.http.impl.client.CloseableHttpClient; import at.gv.egiz.eaaf.core.exceptions.EaafException; public interface IHttpClientFactory { /** * Return an instance of a Apache HTTP client that uses * default configuration properties from {@link IHttpClientFactory} implementation * and follows http redirects automatically. * * @return http client */ @Nonnull CloseableHttpClient getHttpClient(); /** * Return an instance of a Apache HTTP client that uses * default configuration properties from {@link IHttpClientFactory} implementation. * * @param followRedirects if false, the client does not flow 30x * http redirects * @return http client */ @Nonnull CloseableHttpClient getHttpClient(boolean followRedirects); /** * Return an instance of a Apache HTTP client based in {@link HttpClientConfiguration}. * * @param config Configuration object for this http client * @return http client * @throws EaafException In case of a http-client initialization problem */ @Nonnull CloseableHttpClient getHttpClient(@Nonnull HttpClientConfiguration config) throws EaafException; }