Class HttpComponent

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.DefaultComponent
org.apache.camel.support.HeaderFilterStrategyComponent
org.apache.camel.http.common.HttpCommonComponent
org.apache.camel.component.http.HttpComponent
All Implemented Interfaces:
AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.Component, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.HasCamelContext, org.apache.camel.spi.HeaderFilterStrategyAware, org.apache.camel.spi.RestProducerFactory, org.apache.camel.SSLContextParametersAware, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

@Metadata(label="verifiers", enums="parameters,connectivity") @Component("http,https") public class HttpComponent extends org.apache.camel.http.common.HttpCommonComponent implements org.apache.camel.spi.RestProducerFactory, org.apache.camel.SSLContextParametersAware
Defines the HTTP Component
  • Field Details

    • httpClientConfigurer

      @Metadata(label="advanced", description="To use the custom HttpClientConfigurer to perform configuration of the HttpClient that will be used.") protected HttpClientConfigurer httpClientConfigurer
    • clientConnectionManager

      @Metadata(label="advanced", description="To use a custom and shared HttpClientConnectionManager to manage connections. If this has been configured then this is always used for all endpoints created by this component.") protected org.apache.hc.client5.http.io.HttpClientConnectionManager clientConnectionManager
    • httpContext

      @Metadata(label="advanced", description="To use a custom org.apache.hc.core5.http.protocol.HttpContext when executing requests.") protected org.apache.hc.core5.http.protocol.HttpContext httpContext
    • sslContextParameters

      @Metadata(label="security", description="To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.support.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need.") protected org.apache.camel.support.jsse.SSLContextParameters sslContextParameters
    • x509HostnameVerifier

      @Metadata(label="security", description="To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier.") protected HostnameVerifier x509HostnameVerifier
    • cookieStore

      @Metadata(label="producer,advanced", description="To use a custom org.apache.hc.client5.http.cookie.CookieStore. By default the org.apache.hc.client5.http.cookie.BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is forced to be a noop cookie store as cookie shouldn\'t be stored as we are just bridging (eg acting as a proxy).") protected org.apache.hc.client5.http.cookie.CookieStore cookieStore
    • connectionRequestTimeout

      @Metadata(label="timeout", defaultValue="3 minutes", description="Returns the connection lease request timeout used when requesting a connection from the connection manager. A timeout value of zero is interpreted as a disabled timeout.", javaType="org.apache.hc.core5.util.Timeout") protected org.apache.hc.core5.util.Timeout connectionRequestTimeout
    • connectTimeout

      @Metadata(label="timeout", defaultValue="3 minutes", description="Determines the timeout until a new connection is fully established. A timeout value of zero is interpreted as an infinite timeout.", javaType="org.apache.hc.core5.util.Timeout") protected org.apache.hc.core5.util.Timeout connectTimeout
    • soTimeout

      @Metadata(label="timeout", defaultValue="3 minutes", description="Determines the default socket timeout value for blocking I/O operations.", javaType="org.apache.hc.core5.util.Timeout") protected org.apache.hc.core5.util.Timeout soTimeout
    • responseTimeout

      @Metadata(label="timeout", defaultValue="0", description="Determines the timeout until arrival of a response from the opposite endpoint. A timeout value of zero is interpreted as an infinite timeout. Please note that response timeout may be unsupported by HTTP transports with message multiplexing.", javaType="org.apache.hc.core5.util.Timeout") protected org.apache.hc.core5.util.Timeout responseTimeout
    • proxyAuthScheme

      @Metadata(label="producer,proxy", enums="http,https", description="Proxy authentication protocol scheme") protected String proxyAuthScheme
    • proxyAuthMethod

      @Metadata(label="producer,proxy", enums="Basic,Digest,NTLM", description="Proxy authentication method to use") protected String proxyAuthMethod
    • proxyAuthUsername

      @Metadata(label="producer,proxy", secret=true, description="Proxy authentication username") protected String proxyAuthUsername
    • proxyAuthPassword

      @Metadata(label="producer,proxy", secret=true, description="Proxy authentication password") protected String proxyAuthPassword
    • proxyAuthHost

      @Metadata(label="producer,proxy", description="Proxy authentication host") protected String proxyAuthHost
    • proxyAuthPort

      @Metadata(label="producer,proxy", description="Proxy authentication port") protected Integer proxyAuthPort
    • proxyAuthDomain

      @Metadata(label="producer,proxy", description="Proxy authentication domain to use") protected String proxyAuthDomain
    • proxyAuthNtHost

      @Metadata(label="producer,proxy", description="Proxy authentication domain (workstation name) to use with NTML") protected String proxyAuthNtHost
    • maxTotalConnections

      @Metadata(label="advanced", defaultValue="200", description="The maximum number of connections.") protected int maxTotalConnections
    • connectionsPerRoute

      @Metadata(label="advanced", defaultValue="20", description="The maximum number of connections per route.") protected int connectionsPerRoute
    • connectionTimeToLive

      @Metadata(label="advanced", description="The time for connection to live, the time unit is millisecond, the default value is always keep alive.") protected long connectionTimeToLive
    • useGlobalSslContextParameters

      @Metadata(label="security", defaultValue="false", description="Enable usage of global SSL context parameters.") protected boolean useGlobalSslContextParameters
    • responsePayloadStreamingThreshold

      @Metadata(label="producer,advanced", defaultValue="8192", description="This threshold in bytes controls whether the response payload should be stored in memory as a byte array or be streaming based. Set this to -1 to always use streaming mode.") protected int responsePayloadStreamingThreshold
    • redirectHandlingDisabled

      @Metadata(label="advanced", description="Disables automatic redirect handling") protected boolean redirectHandlingDisabled
    • automaticRetriesDisabled

      @Metadata(label="advanced", description="Disables automatic request recovery and re-execution") protected boolean automaticRetriesDisabled
    • contentCompressionDisabled

      @Metadata(label="advanced", description="Disables automatic content decompression") protected boolean contentCompressionDisabled
    • cookieManagementDisabled

      @Metadata(label="advanced", description="Disables state (cookie) management") protected boolean cookieManagementDisabled
    • authCachingDisabled

      @Metadata(label="advanced", description="Disables authentication scheme caching") protected boolean authCachingDisabled
    • connectionStateDisabled

      @Metadata(label="advanced", description="Disables connection state tracking") protected boolean connectionStateDisabled
    • defaultUserAgentDisabled

      @Metadata(label="advanced", description="Disables the default user agent set by this builder if none has been provided by the user") protected boolean defaultUserAgentDisabled
    • copyHeaders

      @Metadata(label="producer,advanced", defaultValue="true", description="If this option is true then IN exchange headers will be copied to OUT exchange headers according to copy strategy. Setting this to false, allows to only include the headers from the HTTP response (not propagating IN headers).") protected boolean copyHeaders
    • skipRequestHeaders

      @Metadata(label="producer,advanced", description="Whether to skip mapping all the Camel headers as HTTP request headers. If there are no data from Camel headers needed to be included in the HTTP request then this can avoid parsing overhead with many object allocations for the JVM garbage collector.") protected boolean skipRequestHeaders
    • skipResponseHeaders

      @Metadata(label="producer,advanced", description="Whether to skip mapping all the HTTP response headers to Camel headers. If there are no data needed from HTTP headers then this can avoid parsing overhead with many object allocations for the JVM garbage collector.") protected boolean skipResponseHeaders
    • followRedirects

      @Metadata(label="producer", defaultValue="false", description="Whether to the HTTP request should follow redirects. By default the HTTP request does not follow redirects ") protected boolean followRedirects
    • userAgent

      @UriParam(label="producer,advanced", description="To set a custom HTTP User-Agent request header") protected String userAgent
  • Constructor Details

    • HttpComponent

      public HttpComponent()
  • Method Details

    • createHttpClientConfigurer

      protected HttpClientConfigurer createHttpClientConfigurer(Map<String,Object> parameters, boolean secure) throws Exception
      Creates the HttpClientConfigurer based on the given parameters
      Parameters:
      parameters - the map of parameters
      secure - whether the endpoint is secure (eg https)
      Returns:
      the configurer
      Throws:
      Exception - is thrown if error creating configurer
    • createEndpoint

      protected org.apache.camel.Endpoint createEndpoint(String uri, String remaining, Map<String,Object> parameters) throws Exception
      Specified by:
      createEndpoint in class org.apache.camel.support.DefaultComponent
      Throws:
      Exception
    • createConnectionManager

      protected org.apache.hc.client5.http.io.HttpClientConnectionManager createConnectionManager(Map<String,Object> parameters, org.apache.camel.support.jsse.SSLContextParameters sslContextParameters, Map<String,Object> httpConnectionOptions) throws GeneralSecurityException, IOException
      Throws:
      GeneralSecurityException
      IOException
    • createHttpClientBuilder

      protected org.apache.hc.client5.http.impl.classic.HttpClientBuilder createHttpClientBuilder(String uri, Map<String,Object> parameters, Map<String,Object> httpClientOptions)
    • createConnectionRegistry

      protected org.apache.hc.core5.http.config.Registry<org.apache.hc.client5.http.socket.ConnectionSocketFactory> createConnectionRegistry(HostnameVerifier x509HostnameVerifier, org.apache.camel.support.jsse.SSLContextParameters sslContextParams, boolean useSystemProperties) throws GeneralSecurityException, IOException
      Throws:
      GeneralSecurityException
      IOException
    • createConnectionManager

      protected org.apache.hc.client5.http.io.HttpClientConnectionManager createConnectionManager(org.apache.hc.core5.http.config.Registry<org.apache.hc.client5.http.socket.ConnectionSocketFactory> registry, int maxTotalConnections, int connectionsPerRoute, org.apache.hc.core5.http.io.SocketConfig defaultSocketConfig)
    • useIntrospectionOnEndpoint

      protected boolean useIntrospectionOnEndpoint()
      Overrides:
      useIntrospectionOnEndpoint in class org.apache.camel.http.common.HttpCommonComponent
    • createProducer

      public org.apache.camel.Producer createProducer(org.apache.camel.CamelContext camelContext, String host, String verb, String basePath, String uriTemplate, String queryParameters, String consumes, String produces, org.apache.camel.spi.RestConfiguration configuration, Map<String,Object> parameters) throws Exception
      Specified by:
      createProducer in interface org.apache.camel.spi.RestProducerFactory
      Throws:
      Exception
    • getHttpClientConfigurer

      public HttpClientConfigurer getHttpClientConfigurer()
    • setHttpClientConfigurer

      public void setHttpClientConfigurer(HttpClientConfigurer httpClientConfigurer)
      To use the custom HttpClientConfigurer to perform configuration of the HttpClient that will be used.
    • getClientConnectionManager

      public org.apache.hc.client5.http.io.HttpClientConnectionManager getClientConnectionManager()
    • setClientConnectionManager

      public void setClientConnectionManager(org.apache.hc.client5.http.io.HttpClientConnectionManager clientConnectionManager)
      To use a custom and shared HttpClientConnectionManager to manage connections. If this has been configured then this is always used for all endpoints created by this component.
    • getHttpContext

      public org.apache.hc.core5.http.protocol.HttpContext getHttpContext()
    • setHttpContext

      public void setHttpContext(org.apache.hc.core5.http.protocol.HttpContext httpContext)
      To use a custom org.apache.http.protocol.HttpContext when executing requests.
    • getSslContextParameters

      public org.apache.camel.support.jsse.SSLContextParameters getSslContextParameters()
    • setSslContextParameters

      public void setSslContextParameters(org.apache.camel.support.jsse.SSLContextParameters sslContextParameters)
      To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.support.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need.
    • isUseGlobalSslContextParameters

      public boolean isUseGlobalSslContextParameters()
      Specified by:
      isUseGlobalSslContextParameters in interface org.apache.camel.SSLContextParametersAware
    • setUseGlobalSslContextParameters

      public void setUseGlobalSslContextParameters(boolean useGlobalSslContextParameters)
      Enable usage of global SSL context parameters.
      Specified by:
      setUseGlobalSslContextParameters in interface org.apache.camel.SSLContextParametersAware
    • getX509HostnameVerifier

      public HostnameVerifier getX509HostnameVerifier()
    • setX509HostnameVerifier

      public void setX509HostnameVerifier(HostnameVerifier x509HostnameVerifier)
      To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier.
    • getMaxTotalConnections

      public int getMaxTotalConnections()
    • setMaxTotalConnections

      public void setMaxTotalConnections(int maxTotalConnections)
      The maximum number of connections.
    • getConnectionsPerRoute

      public int getConnectionsPerRoute()
    • setConnectionsPerRoute

      public void setConnectionsPerRoute(int connectionsPerRoute)
      The maximum number of connections per route.
    • getConnectionTimeToLive

      public long getConnectionTimeToLive()
    • setConnectionTimeToLive

      public void setConnectionTimeToLive(long connectionTimeToLive)
      The time for connection to live, the time unit is millisecond, the default value is always keep alive.
    • getCookieStore

      public org.apache.hc.client5.http.cookie.CookieStore getCookieStore()
    • setCookieStore

      public void setCookieStore(org.apache.hc.client5.http.cookie.CookieStore cookieStore)
      To use a custom org.apache.http.client.CookieStore. By default the org.apache.http.impl.client.BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is forced to be a noop cookie store as cookie shouldn't be stored as we are just bridging (eg acting as a proxy).
    • getConnectionRequestTimeout

      public org.apache.hc.core5.util.Timeout getConnectionRequestTimeout()
    • setConnectionRequestTimeout

      public void setConnectionRequestTimeout(org.apache.hc.core5.util.Timeout connectionRequestTimeout)
      Returns the connection lease request timeout used when requesting a connection from the connection manager.

      A timeout value of zero is interpreted as a disabled timeout.

      Default: 3 minutes

    • getConnectTimeout

      public org.apache.hc.core5.util.Timeout getConnectTimeout()
    • setConnectTimeout

      public void setConnectTimeout(org.apache.hc.core5.util.Timeout connectTimeout)
      Determines the timeout until a new connection is fully established. This may also include transport security negotiation exchanges such as SSL or TLS protocol negotiation).

      A timeout value of zero is interpreted as an infinite timeout.

      Default: 3 minutes

    • getSoTimeout

      public org.apache.hc.core5.util.Timeout getSoTimeout()
    • setSoTimeout

      public void setSoTimeout(org.apache.hc.core5.util.Timeout soTimeout)
      Determines the default socket timeout value for blocking I/O operations.

      Default: 3 minutes

    • getResponseTimeout

      public org.apache.hc.core5.util.Timeout getResponseTimeout()
    • setResponseTimeout

      public void setResponseTimeout(org.apache.hc.core5.util.Timeout responseTimeout)
      Determines the timeout until arrival of a response from the opposite endpoint.

      A timeout value of zero is interpreted as an infinite timeout.

      Please note that response timeout may be unsupported by HTTP transports with message multiplexing.

      Default: 0

    • getProxyAuthScheme

      public String getProxyAuthScheme()
    • setProxyAuthScheme

      public void setProxyAuthScheme(String proxyAuthScheme)
    • getProxyAuthMethod

      public String getProxyAuthMethod()
    • setProxyAuthMethod

      public void setProxyAuthMethod(String proxyAuthMethod)
    • getProxyAuthUsername

      public String getProxyAuthUsername()
    • setProxyAuthUsername

      public void setProxyAuthUsername(String proxyAuthUsername)
    • getProxyAuthPassword

      public String getProxyAuthPassword()
    • setProxyAuthPassword

      public void setProxyAuthPassword(String proxyAuthPassword)
    • getProxyAuthHost

      public String getProxyAuthHost()
    • setProxyAuthHost

      public void setProxyAuthHost(String proxyAuthHost)
    • getProxyAuthPort

      public Integer getProxyAuthPort()
    • setProxyAuthPort

      public void setProxyAuthPort(Integer proxyAuthPort)
    • getProxyAuthDomain

      public String getProxyAuthDomain()
    • setProxyAuthDomain

      public void setProxyAuthDomain(String proxyAuthDomain)
    • getProxyAuthNtHost

      public String getProxyAuthNtHost()
    • setProxyAuthNtHost

      public void setProxyAuthNtHost(String proxyAuthNtHost)
    • getResponsePayloadStreamingThreshold

      public int getResponsePayloadStreamingThreshold()
    • setResponsePayloadStreamingThreshold

      public void setResponsePayloadStreamingThreshold(int responsePayloadStreamingThreshold)
    • isRedirectHandlingDisabled

      public boolean isRedirectHandlingDisabled()
    • setRedirectHandlingDisabled

      public void setRedirectHandlingDisabled(boolean redirectHandlingDisabled)
    • isAutomaticRetriesDisabled

      public boolean isAutomaticRetriesDisabled()
    • setAutomaticRetriesDisabled

      public void setAutomaticRetriesDisabled(boolean automaticRetriesDisabled)
    • isContentCompressionDisabled

      public boolean isContentCompressionDisabled()
    • setContentCompressionDisabled

      public void setContentCompressionDisabled(boolean contentCompressionDisabled)
    • isCookieManagementDisabled

      public boolean isCookieManagementDisabled()
    • setCookieManagementDisabled

      public void setCookieManagementDisabled(boolean cookieManagementDisabled)
    • isAuthCachingDisabled

      public boolean isAuthCachingDisabled()
    • setAuthCachingDisabled

      public void setAuthCachingDisabled(boolean authCachingDisabled)
    • isConnectionStateDisabled

      public boolean isConnectionStateDisabled()
    • setConnectionStateDisabled

      public void setConnectionStateDisabled(boolean connectionStateDisabled)
    • isDefaultUserAgentDisabled

      public boolean isDefaultUserAgentDisabled()
    • setDefaultUserAgentDisabled

      public void setDefaultUserAgentDisabled(boolean defaultUserAgentDisabled)
    • isCopyHeaders

      public boolean isCopyHeaders()
    • setCopyHeaders

      public void setCopyHeaders(boolean copyHeaders)
    • isSkipRequestHeaders

      public boolean isSkipRequestHeaders()
    • setSkipRequestHeaders

      public void setSkipRequestHeaders(boolean skipRequestHeaders)
    • isSkipResponseHeaders

      public boolean isSkipResponseHeaders()
    • setSkipResponseHeaders

      public void setSkipResponseHeaders(boolean skipResponseHeaders)
    • isFollowRedirects

      public boolean isFollowRedirects()
    • setFollowRedirects

      public void setFollowRedirects(boolean followRedirects)
    • getUserAgent

      public String getUserAgent()
    • setUserAgent

      public void setUserAgent(String userAgent)
    • doStart

      public void doStart() throws Exception
      Overrides:
      doStart in class org.apache.camel.support.service.BaseService
      Throws:
      Exception
    • doStop

      public void doStop() throws Exception
      Overrides:
      doStop in class org.apache.camel.support.service.BaseService
      Throws:
      Exception
    • getVerifier

      public org.apache.camel.component.extension.ComponentVerifierExtension getVerifier()