Class 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.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 Detail

      • 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.http.conn.HttpClientConnectionManager clientConnectionManager
      • httpContext

        @Metadata(label="advanced",
                  description="To use a custom org.apache.http.protocol.HttpContext when executing requests.")
        protected org.apache.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",
                  description="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).")
        protected org.apache.http.client.CookieStore cookieStore
      • connectionRequestTimeout

        @Metadata(label="timeout",
                  defaultValue="-1",
                  description="The timeout in milliseconds used when requesting a connection from the connection manager. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).")
        protected int connectionRequestTimeout
      • connectTimeout

        @Metadata(label="timeout",
                  defaultValue="-1",
                  description="Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).")
        protected int connectTimeout
      • socketTimeout

        @Metadata(label="timeout",
                  defaultValue="-1",
                  description="Defines the socket timeout in milliseconds, which is the timeout for waiting for data  or, put differently, a maximum period inactivity between two consecutive data packets). A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).")
        protected int socketTimeout
      • 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",
                  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",
                  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,advanced",
                  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 Detail

      • HttpComponent

        public HttpComponent()
    • Method Detail

      • 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
      • createHttpClientBuilder

        protected org.apache.http.impl.client.HttpClientBuilder createHttpClientBuilder​(String uri,
                                                                                        Map<String,​Object> parameters,
                                                                                        Map<String,​Object> httpClientOptions)
      • createConnectionManager

        protected org.apache.http.conn.HttpClientConnectionManager createConnectionManager​(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry)
      • createConnectionManager

        protected org.apache.http.conn.HttpClientConnectionManager createConnectionManager​(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry,
                                                                                           int maxTotalConnections,
                                                                                           int connectionsPerRoute)
      • 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
      • 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.http.conn.HttpClientConnectionManager getClientConnectionManager()
      • setClientConnectionManager

        public void setClientConnectionManager​(org.apache.http.conn.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.http.protocol.HttpContext getHttpContext()
      • setHttpContext

        public void setHttpContext​(org.apache.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
      • 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.http.client.CookieStore getCookieStore()
      • setCookieStore

        public void setCookieStore​(org.apache.http.client.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 int getConnectionRequestTimeout()
      • setConnectionRequestTimeout

        public void setConnectionRequestTimeout​(int connectionRequestTimeout)
        The timeout in milliseconds used when requesting a connection from the connection manager.

        A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).

        Default: -1

      • getConnectTimeout

        public int getConnectTimeout()
      • setConnectTimeout

        public void setConnectTimeout​(int connectTimeout)
        Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout.

        A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).

        Default: -1

      • getSocketTimeout

        public int getSocketTimeout()
      • setSocketTimeout

        public void setSocketTimeout​(int socketTimeout)
        Defines the socket timeout (SO_TIMEOUT) in milliseconds, which is the timeout for waiting for data or, put differently, a maximum period inactivity between two consecutive data packets).

        A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).

        Default: -1

      • 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.DefaultComponent
        Throws:
        Exception
      • doStop

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

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