Package org.opennms.core.web
Class HttpClientWrapper
- java.lang.Object
-
- org.opennms.core.web.HttpClientWrapper
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public class HttpClientWrapper extends Object implements Closeable
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedHttpClientWrapper()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description HttpClientWrapperaddBasicCredentials(String username, String password)Add basic auth credentials to requests created by the HttpClientWrapper.HttpClientWrapperaddRequestInterceptor(org.apache.http.HttpRequestInterceptor interceptor)Add anHttpRequestInterceptorfor all requests.HttpClientWrapperaddResponseInterceptor(org.apache.http.HttpResponseInterceptor interceptor)Add anHttpResponseInterceptorfor all responses.protected voidassertNotInitialized()voidclose()Safely clean up the HttpClient.voidclose(org.apache.http.client.methods.CloseableHttpResponse response)Safely clean up after a response.protected voidconfigureSSLContext(org.apache.http.impl.client.HttpClientBuilder builder)static HttpClientWrappercreate()Create a new HTTP client wrapper.HttpClientWrapperdontReuseConnections()Configure HttpClient to not reuse connections for multiple requests.HttpClientWrapperduplicate()Create a duplicate HttpClientWrapper from this wrapper.protected voidenablePreemptiveAuth(org.apache.http.impl.client.HttpClientBuilder builder)org.apache.http.client.methods.CloseableHttpResponseexecute(org.apache.http.client.methods.HttpUriRequest method)Execute the given HTTP method, returning an HTTP response.org.apache.http.impl.client.CloseableHttpClientgetClient()HttpClientWrappersetConnectionTimeout(Integer connectionTimeout)Set the connection timeout on connections.protected voidsetCredentials(org.apache.http.impl.client.HttpClientBuilder httpClientBuilder, String username, String password)HttpClientWrappersetRetries(Integer retries)Set the number of retries when making requests.HttpClientWrappersetSocketTimeout(Integer socketTimeout)Set the socket timeout on connections.HttpClientWrappersetUserAgent(String userAgent)Set the User-Agent header used when making requests.HttpClientWrappersetVersion(org.apache.http.HttpVersion httpVersion)Set the HTTP version used when making requests.HttpClientWrappersetVirtualHost(String host)Set the Host header used when making requests.StringtoString()HttpClientWrappertrustSelfSigned(String scheme)Trust self-signed certificates.HttpClientWrapperuseBrowserCompatibleCookies()Use browser-compatible cookies rather than the default.HttpClientWrapperuseLaxRedirect()Use LAX redirect strategy.HttpClientWrapperusePreemptiveAuth()Preemptively pass basic authentication headers, rather than waiting for the server to response asking for it.HttpClientWrapperuseRelaxedSSL(String scheme)Use relaxed SSL connection handling (EmptyKeyRelaxedTrustSSLContext.ALGORITHM, allows any certificate)HttpClientWrapperuseSystemProxySettings()Configure HttpClient to honor the system java proxy settings (-Dhttp.proxyHost= -Dhttp.proxyPort=)
-
-
-
Method Detail
-
create
public static HttpClientWrapper create()
Create a new HTTP client wrapper.
-
addBasicCredentials
public HttpClientWrapper addBasicCredentials(String username, String password)
Add basic auth credentials to requests created by the HttpClientWrapper.- Parameters:
username- The username to connect aspassword- The password to use
-
addRequestInterceptor
public HttpClientWrapper addRequestInterceptor(org.apache.http.HttpRequestInterceptor interceptor)
Add anHttpRequestInterceptorfor all requests.
-
addResponseInterceptor
public HttpClientWrapper addResponseInterceptor(org.apache.http.HttpResponseInterceptor interceptor)
Add anHttpResponseInterceptorfor all responses.- Returns:
-
dontReuseConnections
public HttpClientWrapper dontReuseConnections()
Configure HttpClient to not reuse connections for multiple requests.
-
useSystemProxySettings
public HttpClientWrapper useSystemProxySettings()
Configure HttpClient to honor the system java proxy settings (-Dhttp.proxyHost= -Dhttp.proxyPort=)
-
useBrowserCompatibleCookies
public HttpClientWrapper useBrowserCompatibleCookies()
Use browser-compatible cookies rather than the default.
-
useRelaxedSSL
public HttpClientWrapper useRelaxedSSL(String scheme) throws GeneralSecurityException
Use relaxed SSL connection handling (EmptyKeyRelaxedTrustSSLContext.ALGORITHM, allows any certificate)
-
trustSelfSigned
public HttpClientWrapper trustSelfSigned(String scheme) throws GeneralSecurityException
Trust self-signed certificates.- Throws:
GeneralSecurityException
-
usePreemptiveAuth
public HttpClientWrapper usePreemptiveAuth()
Preemptively pass basic authentication headers, rather than waiting for the server to response asking for it.
-
useLaxRedirect
public HttpClientWrapper useLaxRedirect()
Use LAX redirect strategy. Automatically redirects all HEAD, GET and POST requests. This strategy relaxes restrictions on automatic redirection of POST methods imposed by the HTTP specification.
-
setSocketTimeout
public HttpClientWrapper setSocketTimeout(Integer socketTimeout)
Set the socket timeout on connections.
-
setConnectionTimeout
public HttpClientWrapper setConnectionTimeout(Integer connectionTimeout)
Set the connection timeout on connections.
-
setRetries
public HttpClientWrapper setRetries(Integer retries)
Set the number of retries when making requests.
-
setUserAgent
public HttpClientWrapper setUserAgent(String userAgent)
Set the User-Agent header used when making requests.
-
setVirtualHost
public HttpClientWrapper setVirtualHost(String host)
Set the Host header used when making requests.
-
setVersion
public HttpClientWrapper setVersion(org.apache.http.HttpVersion httpVersion)
Set the HTTP version used when making requests.
-
close
public void close(org.apache.http.client.methods.CloseableHttpResponse response)
Safely clean up after a response.
-
close
public void close() throws IOExceptionSafely clean up the HttpClient.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
execute
public org.apache.http.client.methods.CloseableHttpResponse execute(org.apache.http.client.methods.HttpUriRequest method) throws org.apache.http.client.ClientProtocolException, IOExceptionExecute the given HTTP method, returning an HTTP response. Note that when you are done with the response, you must call#closeResponse()so that it gets cleaned up properly.- Throws:
org.apache.http.client.ClientProtocolExceptionIOException
-
duplicate
public HttpClientWrapper duplicate()
Create a duplicate HttpClientWrapper from this wrapper. All settings are preserved, and the session/cookie store is shared between duplicate wrappers and their parent.
-
getClient
public org.apache.http.impl.client.CloseableHttpClient getClient()
-
assertNotInitialized
protected void assertNotInitialized()
-
setCredentials
protected void setCredentials(org.apache.http.impl.client.HttpClientBuilder httpClientBuilder, String username, String password)
-
enablePreemptiveAuth
protected void enablePreemptiveAuth(org.apache.http.impl.client.HttpClientBuilder builder)
-
configureSSLContext
protected void configureSSLContext(org.apache.http.impl.client.HttpClientBuilder builder)
-
-