You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2016/04/08 10:18:36 UTC

svn commit: r985075 - in /websites/production/camel/content: cache/main.pageCache http4.html

Author: buildbot
Date: Fri Apr  8 08:18:36 2016
New Revision: 985075

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/http4.html

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/camel/content/http4.html
==============================================================================
--- websites/production/camel/content/http4.html (original)
+++ websites/production/camel/content/http4.html Fri Apr  8 08:18:36 2016
@@ -96,7 +96,7 @@
 </div></div><div class="confluence-information-macro confluence-information-macro-information"><p class="title">camel-http4 vs camel-http</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Camel-http4 uses <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-client-ga/">Apache HttpClient 4.x</a> while camel-http uses <a shape="rect" class="external-link" href="http://hc.apache.org/httpclient-3.x/">Apache HttpClient 3.x</a>.</p></div></div><h3 id="HTTP4-URIformat">URI format</h3><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[http4:hostname[:port][/resourceUri][?options]
 ]]></script>
-</div></div><p>Will by default use port 80 for HTTP and 443 for HTTPS.</p><p>You can append query options to the URI in the following format, <code>?option=value&amp;option=value&amp;...</code></p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">camel-http4 vs camel-jetty</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>You can only produce to endpoints generated by the HTTP4 component. Therefore it should never be used as input into your Camel Routes. To bind/expose an HTTP endpoint via a HTTP server as input to a Camel route, use the <a shape="rect" href="jetty.html">Jetty Component</a> instead.</p></div></div><h3 id="HTTP4-HttpComponentOptions">HttpComponent Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" clas
 s="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxTotalConnections</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>200</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum number of connections.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>connectionsPerRoute</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>20</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum number of connections per route.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cookieStore</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.2/2.12.0:</strong> To use a custom <code>org.apache.http.client.CookieStore</code>.
  By default the <code>org.apache.http.impl.client.BasicCookieStore</code> is used which is an in-memory only cookie store. Notice if <code>bridgeEndpoint=true</code> then the cookie store is forced to be a noop cookie store as cookies shouldn't be stored as we are just bridging (eg acting as a proxy).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpClientConfigurer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Reference to a <code>org.apache.camel.component.http.HttpClientConfigurer</code> in the <a shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>clientConnectionManager</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.http.conn.ClientConnectionManager</co
 de>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpBinding</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.http.HttpBinding</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpContext</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.2:</strong> To use a custom <code>org.apache.http.protocol.HttpContext</code> when executing requests.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sslContextParameters</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> To use a custom <code>org.apache.camel.util.jsse.SSLContextParam
 eters</code>. See <a shape="rect" href="#HTTP4-UsingtheJSSEConfigurationUtility">Using the JSSE Configuration Utility</a>. <strong>Important:</strong> Only one instance of <code>org.apache.camel.util.jsse.SSLContextParameters</code> 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. See further below for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>x509HostnameVerifier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>BrowserCompatHostnameVerifier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.7:</strong> You can refer to a different <code>org.apache.http.conn.ssl.X509HostnameVerifier</code> instance in the <a shape="rect" href="registry.html">Registry</a> such as <code>org.apache.http.conn.ssl.StrictHostnameVerifier</code> or <code>org.apache.http.conn.ssl.AllowAllHostnameVerifier</code>.<
 /p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>connectionTimeToLive</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.0:</strong> The time for connection to live, the time unit is millisecond, the default value is always keep alive.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>allowJavaSerializedObject</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16.1/2.15.5:</strong> Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.</p></td></tr></tbody></table></div><p>&#160;</p><h3 id=
 "HTTP4-HttpEndpointOptions">HttpEndpoint Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>throwExceptionOnFailure</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Option to disable throwing the <code>HttpOperationFailedException</code> in case of failed responses from the remote server. This allows you to get all responses regardless of the HTTP status code.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bridgeEndpoint</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd">
 <p>If true, HttpProducer will ignore the Exchange.HTTP_URI header, and use the endpoint's URI for request. You may also set the <strong>throwExcpetionOnFailure</strong> to be false to let the HttpProducer send all fault responses back. Also if set to true HttpProducer and CamelServlet will skip the gzip processing if the content-encoding is "gzip".</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>clearExpiredCookies</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.2/2.12.0:</strong> Whether to clear expired cookies before sending the HTTP request. This ensures the cookies store does not keep growing by adding new cookies which is newer removed when they are expired.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cookieStore</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.2/2.12.0:</strong> To use a custom <code>org.apache.http.client.CookieStore</code>. By default the <code>org.apache.http.impl.client.BasicCookieStore</code> is used which is an in-memory only cookie store. Notice if <code>bridgeEndpoint=true</code> then the cookie store is forced to be a noop cookie store as cookies shouldn't be stored as we are just bridging (eg acting as a proxy).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>disableStreamCache</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>DefaultHttpBinding will copy the request input stream into a stream cache and put it into the message body if this option is false to support multiple reads, otherwise DefaultHttpBinding will set the request input stream directly in the message body. <strong>Camel 2.17:</strong>&#160;this options is 
 now also support by the producer to allow using the response stream directly instead of stream caching as by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>headerFilterStrategy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.4:</strong> Reference to a instance of <code>org.apache.camel.spi.HeaderFilterStrategy</code> in the <a shape="rect" href="registry.html">Registry</a>.&#160;It will be used to apply the custom headerFilterStrategy on the new create HttpEndpoint.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpBindingRef</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated and will be removed in Camel 3.0:</strong> Reference to a <code>org.apache.camel.component.http.HttpBinding</code> in t
 he <a shape="rect" href="registry.html">Registry</a>. Use the <code>httpBinding</code> option instead.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpBinding</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.http.HttpBinding</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>httpClientConfigurerRef</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><strong>Deprecated and removed in Camel 2.17:</strong> Reference to a <code>org.apache.camel.component.http.HttpClientConfigurer</code> in the <a shape="rect" href="registry.html">Registry</a>. Use the <code>httpClientConfigurer</code> option instead.</s></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><c
 ode>httpClientConfigurer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Reference to a <code>org.apache.camel.component.http.HttpClientConfigurer</code> in the <a shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>httpContextRef</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><strong>Deprecated and removed in Camel 2.17:</strong> <strong>Camel 2.9.2:</strong> Reference to a custom <code>org.apache.http.protocol.HttpContext</code> in the <a shape="rect" href="registry.html">Registry</a>. Use the <code>httpContext</code> option instead.</s></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpContext</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</co
 de></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.2:</strong> To use a custom <code>org.apache.http.protocol.HttpContext</code> when executing requests.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpClient.XXX</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Setting options on the <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/params/BasicHttpParams.html">BasicHttpParams</a>. For instance <code>httpClient.soTimeout=5000</code> will set the <code>SO_TIMEOUT</code> to 5 seconds. Look on the setter methods of the following parameter beans for a complete reference: <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/auth/params/AuthParamBean.html">AuthParamBean</a>, <a shape="rect" cl
 ass="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/params/ClientParamBean.html">ClientParamBean</a>, <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/conn/params/ConnConnectionParamBean.html">ConnConnectionParamBean</a>, <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/conn/params/ConnRouteParamBean.html">ConnRouteParamBean</a>, <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/cookie/params/CookieSpecParamBean.html">CookieSpecParamBean</a>, <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/params/HttpConnectionParamBean.html">HttpConnectionParamBean</a> and <a shape="rect" class="external-link" href="http://hc.apache.org/httpco
 mponents-core-ga/httpcore/apidocs/org/apache/http/params/HttpProtocolParamBean.html">HttpProtocolParamBean</a></p><p><strong>Since Camel 2.13.0: </strong>httpClient is changed to configure the <span>&#160;</span><a shape="rect" class="external-link" href="https://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/impl/client/HttpClientBuilder.html">HttpClientBuilder</a><span>&#160;and&#160;</span><a shape="rect" class="external-link" href="https://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/client/config/RequestConfig.Builder.html">RequestConfig.Builder</a>, please check out API document for a complete reference. E.g. since this version use <code>httpClient.socketTimeout=5000</code> for setting the socket timeout to 5 seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>clientConnectionManager</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.http.conn.ClientConnectionManager</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>transferException</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If enabled and an <a shape="rect" href="exchange.html">Exchange</a> failed processing on the consumer side, and if the caused <code>Exception</code> was send back serialized in the response as a <code>application/x-java-serialized-object</code> content type (for example using <a shape="rect" href="jetty.html">Jetty</a> or <a shape="rect" href="servlet.html">SERVLET</a> Camel components). On the producer side the exception will be deserialized and thrown as is, instead of the <code>HttpOperationFailedException</code>. The caused exception is required to be serialized.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">
 <p><s><code>sslContextParametersRef</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><strong>Deprecated and removed in Camel 2.17:</strong> <strong>Camel 2.8:</strong> Reference to a <code>org.apache.camel.util.jsse.SSLContextParameters</code> in the <a shape="rect" href="registry.html">Registry</a>. <strong>Important:</strong> Only one instance of <code>org.apache.camel.util.jsse.SSLContextParameters</code> 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. See further below for more details. See <a shape="rect" href="#HTTP4-UsingtheJSSEConfigurationUtility">Using the JSSE Configuration Utility</a>. Use the <code>sslContextParameters</code> option instead.</s></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sslContextParameters</code></p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> Reference to a <code>org.apache.camel.util.jsse.SSLContextParameters</code> in the <a shape="rect" href="registry.html">Registry</a>. <strong>Important:</strong> Only one instance of <code>org.apache.camel.util.jsse.SSLContextParameters</code> 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. See further below for more details. See <a shape="rect" href="#HTTP4-UsingtheJSSEConfigurationUtility">Using the JSSE Configuration Utility</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>x509HostnameVerifier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>BrowserCompatHostnameVerifier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.7:</strong> You can refer to a dif
 ferent <code>org.apache.http.conn.ssl.X509HostnameVerifier</code> instance in the <a shape="rect" href="registry.html">Registry</a> such as <code>org.apache.http.conn.ssl.StrictHostnameVerifier</code> or <code>org.apache.http.conn.ssl.AllowAllHostnameVerifier</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>urlRewrite</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>Producer only</strong> Refers to a custom <code>org.apache.camel.component.http4.UrlRewrite</code> which allows you to rewrite urls when you bridge/proxy endpoints. See more details at <a shape="rect" href="urlrewrite.html">UrlRewrite</a> and <a shape="rect" href="how-to-use-camel-as-a-http-proxy-between-a-client-and-server.html">How to use Camel as a HTTP proxy between a client and server</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceT
 d"><p><code>maxTotalConnections</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.14</strong>: The maximum number of total connections that the connection manager has. If this option is not set, camel will use the component's setting instead.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>connectionsPerRoute</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.14</strong>: The maximum number of connections per route. <span>If this option is not set, camel will use the component's setting instead.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authenticationPreemptive</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd
 "><p><strong>Camel 2.11.3/2.12.2:</strong> If this option is true, camel-http4 sends preemptive basic authentication to the server.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eagerCheckContentAvailable</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong><span>&#160;</span><strong>Consumer only</strong><span>&#160;</span><span>&#160;Whether to eager check whether the HTTP requests has content if the content-length header is 0 or not present. </span><span>&#160;This can be turned on in case HTTP clients do not send streamed data.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>copyHeaders</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong>&#160;&#160;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).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>okStatusCodeRange</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>200-299</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong>&#160;The status codes which is considered a success response. The values are inclusive. The range must be defined as from-to with the dash included.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ignoreResponseBody</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> If this option is true, The http producer won't read response body and cache the input stream.</p></td></tr><tr><
 td colspan="1" rowspan="1" class="confluenceTd"><p><code>useSystemProperties</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.18:</strong> If this option is true, The HTTP client will use System Properties to set some parameters of his configuration</p></td></tr></tbody></table></div><p>The following authentication options can also be set on the HttpEndpoint:</p><h4 id="HTTP4-SettingBasicAuthenticationandProxy">Setting Basic Authentication and Proxy</h4><p><strong>Before Camel 2.8.0</strong></p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>username</code></p></td><td colspan="1" 
 rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Username for authentication.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>password</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Password for authentication.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>domain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The domain name for authentication.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>host</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The host name authentication.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>pro
 xyHost</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy host name</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy port number</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyUsername</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Username for proxy authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyPassword</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Password for proxy authentication</p></td></tr><tr><td colspan="1" rows
 pan="1" class="confluenceTd"><p><code>proxyDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy domain name</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyNtHost</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy Nt host name</p></td></tr></tbody></table></div><p><strong>Since Camel 2.8.0</strong></p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authUsername</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td
 ><td colspan="1" rowspan="1" class="confluenceTd"><p>Username for authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authPassword</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Password for authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The domain name for authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authHost</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The host name authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthHost</code></p></td><td colspan="1" rowspan="1"
  class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy host name</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy port number</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthScheme</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy scheme, will fallback and use the scheme from the endpoint if not configured.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthUsername</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Username for proxy authentication</p></td></tr><tr><td c
 olspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthPassword</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Password for proxy authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy domain name</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthNtHost</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy Nt host name</p></td></tr></tbody></table></div><h3 id="HTTP4-MessageHeaders">Message Headers</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1
 " rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_URI</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>URI to call. Will override existing URI set directly on the endpoint. This uri is the uri of the http server to call. Its not the same as the Camel endpoint uri, where you can configure endpoint options such as security etc. This header does not support that, its only the uri of the http server.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_PATH</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Request URI's path, the header will be used to build the request URI with the HTTP_URI.</p></td></tr><tr
 ><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_QUERY</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>URI parameters. Will override existing URI parameters set directly on the endpoint.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_RESPONSE_CODE</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP response code from the external server. Is 200 for OK.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span><code>Exchange.HTTP_RESPONSE_TEXT</code><br clear="none"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><code>String</code></td><td colspan="1" rowspan="1" class="confluenceTd"><span>The HTTP response text from the external server.</span></td></tr><tr><td colspan="1" rowspan="1" cla
 ss="confluenceTd"><p><code>Exchange.HTTP_CHARACTER_ENCODING</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Character encoding.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.CONTENT_TYPE</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP content type. Is set on both the IN and OUT message to provide a content type, such as <code>text/html</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.CONTENT_ENCODING</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP content encoding. Is set on both the IN and OUT message to provide a content encoding, such as <code>gzip</code>.</p></td></tr></tbody></table></div>
 <h3 id="HTTP4-MessageBody">Message Body</h3><p>Camel will store the HTTP response from the external server on the OUT body. All headers from the IN message will be copied to the OUT message, so headers are preserved during routing. Additionally Camel will add the HTTP response headers as well to the OUT message headers.</p><p>&#160;</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Using System Properties</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When setting useSystemProperties to true, the HTTP Client will look for the following System Properties and it will use it:</p><ul><li>ssl.TrustManagerFactory.algorithm</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.trustStoreType</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</
 a>.ssl.trustStore</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.trustStoreProvider</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.trustStorePassword</li><li>java.home</li><li>ssl.KeyManagerFactory.algorithm</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.keyStoreType</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.keyStore</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.keyStoreProvider</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.keyStorePassword</li><li>http.proxyHost</li><li>http.proxyPort</li><li>http.nonProxyHosts</li><li>http.keepAlive</li><li>http.maxConnections</li></ul></div></div><h3 id="HTTP4-Responsecode">Response code</h3><p>Camel wil
 l handle according to the HTTP response code:</p><ul class="alternate"><li>Response code is in the range 100..299, Camel regards it as a success response.</li><li>Response code is in the range 300..399, Camel regards it as a redirection response and will throw a <code>HttpOperationFailedException</code> with the information.</li><li><p>Response code is 400+, Camel regards it as an external server failure and will throw a <code>HttpOperationFailedException</code> with the information.</p><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">throwExceptionOnFailure</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The option, <code>throwExceptionOnFailure</code>, can be set to <code>false</code> to prevent the <code>HttpOperationFailedException</code> from being thrown for failed response codes. This allows you to get any response from the remote
  server.<br clear="none"> There is a sample below demonstrating this.</p></div></div></li></ul><h3 id="HTTP4-HttpOperationFailedException">HttpOperationFailedException</h3><p>This exception contains the following information:</p><ul class="alternate"><li>The HTTP status code</li><li>The HTTP status line (text of the status code)</li><li>Redirect location, if server returned a redirect</li><li>Response body as a <code>java.lang.String</code>, if server provided a body as response</li></ul><h3 id="HTTP4-CallingusingGETorPOST">Calling using GET or POST</h3><p>The following algorithm is used to determine whether the <code>GET</code> or <code>POST</code> HTTP method should be used:<br clear="none"> 1. Use method provided in header.<br clear="none"> 2. <code>GET</code> if query string is provided in header.<br clear="none"> 3. <code>GET</code> if endpoint is configured with a query string.<br clear="none"> 4. <code>POST</code> if there is data to send (body is not null).<br clear="none"> 
 5. <code>GET</code> otherwise.</p><h3 id="HTTP4-HowtogetaccesstoHttpServletRequestandHttpServletResponse">How to get access to HttpServletRequest and HttpServletResponse</h3><p>You can get access to these two using the Camel type converter system using<br clear="none"> <strong>NOTE</strong> You can get the request and response not just from the processor after the camel-jetty or camel-cxf endpoint.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Will by default use port 80 for HTTP and 443 for HTTPS.</p><p>You can append query options to the URI in the following format, <code>?option=value&amp;option=value&amp;...</code></p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">camel-http4 vs camel-jetty</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>You can only produce to endpoints generated by the HTTP4 component. Therefore it should never be used as input into your Camel Routes. To bind/expose an HTTP endpoint via a HTTP server as input to a Camel route, use the <a shape="rect" href="jetty.html">Jetty Component</a> instead.</p></div></div><h3 id="HTTP4-HttpComponentOptions">HttpComponent Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" clas
 s="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxTotalConnections</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>200</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum number of connections.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>connectionsPerRoute</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>20</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum number of connections per route.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cookieStore</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.2/2.12.0:</strong> To use a custom <code>org.apache.http.client.CookieStore</code>.
  By default the <code>org.apache.http.impl.client.BasicCookieStore</code> is used which is an in-memory only cookie store. Notice if <code>bridgeEndpoint=true</code> then the cookie store is forced to be a noop cookie store as cookies shouldn't be stored as we are just bridging (eg acting as a proxy).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpClientConfigurer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Reference to a <code>org.apache.camel.component.http.HttpClientConfigurer</code> in the <a shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>clientConnectionManager</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.http.conn.ClientConnectionManager</co
 de>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpBinding</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.http.HttpBinding</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpContext</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.2:</strong> To use a custom <code>org.apache.http.protocol.HttpContext</code> when executing requests.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sslContextParameters</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> To use a custom <code>org.apache.camel.util.jsse.SSLContextParam
 eters</code>. See <a shape="rect" href="#HTTP4-UsingtheJSSEConfigurationUtility">Using the JSSE Configuration Utility</a>. <strong>Important:</strong> Only one instance of <code>org.apache.camel.util.jsse.SSLContextParameters</code> 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. See further below for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>x509HostnameVerifier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>BrowserCompatHostnameVerifier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.7:</strong> You can refer to a different <code>org.apache.http.conn.ssl.X509HostnameVerifier</code> instance in the <a shape="rect" href="registry.html">Registry</a> such as <code>org.apache.http.conn.ssl.StrictHostnameVerifier</code> or <code>org.apache.http.conn.ssl.AllowAllHostnameVerifier</code>.<
 /p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>connectionTimeToLive</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.0:</strong> The time for connection to live, the time unit is millisecond, the default value is always keep alive.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>allowJavaSerializedObject</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16.1/2.15.5:</strong> Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.</p></td></tr></tbody></table></div><p>&#160;</p><h3 id=
 "HTTP4-HttpEndpointOptions">HttpEndpoint Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>throwExceptionOnFailure</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Option to disable throwing the <code>HttpOperationFailedException</code> in case of failed responses from the remote server. This allows you to get all responses regardless of the HTTP status code.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bridgeEndpoint</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd">
 <p>If true, HttpProducer will ignore the Exchange.HTTP_URI header, and use the endpoint's URI for request. You may also set the <strong>throwExcpetionOnFailure</strong> to be false to let the HttpProducer send all fault responses back. Also if set to true HttpProducer and CamelServlet will skip the gzip processing if the content-encoding is "gzip".</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>clearExpiredCookies</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.2/2.12.0:</strong> Whether to clear expired cookies before sending the HTTP request. This ensures the cookies store does not keep growing by adding new cookies which is newer removed when they are expired.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cookieStore</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.2/2.12.0:</strong> To use a custom <code>org.apache.http.client.CookieStore</code>. By default the <code>org.apache.http.impl.client.BasicCookieStore</code> is used which is an in-memory only cookie store. Notice if <code>bridgeEndpoint=true</code> then the cookie store is forced to be a noop cookie store as cookies shouldn't be stored as we are just bridging (eg acting as a proxy).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>disableStreamCache</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>DefaultHttpBinding will copy the request input stream into a stream cache and put it into the message body if this option is false to support multiple reads, otherwise DefaultHttpBinding will set the request input stream directly in the message body. <strong>Camel 2.17:</strong>&#160;this options is 
 now also support by the producer to allow using the response stream directly instead of stream caching as by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>headerFilterStrategy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.4:</strong> Reference to a instance of <code>org.apache.camel.spi.HeaderFilterStrategy</code> in the <a shape="rect" href="registry.html">Registry</a>.&#160;It will be used to apply the custom headerFilterStrategy on the new create HttpEndpoint.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpBindingRef</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated and will be removed in Camel 3.0:</strong> Reference to a <code>org.apache.camel.component.http.HttpBinding</code> in t
 he <a shape="rect" href="registry.html">Registry</a>. Use the <code>httpBinding</code> option instead.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpBinding</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.camel.component.http.HttpBinding</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>httpClientConfigurerRef</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><strong>Deprecated and removed in Camel 2.17:</strong> Reference to a <code>org.apache.camel.component.http.HttpClientConfigurer</code> in the <a shape="rect" href="registry.html">Registry</a>. Use the <code>httpClientConfigurer</code> option instead.</s></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><c
 ode>httpClientConfigurer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Reference to a <code>org.apache.camel.component.http.HttpClientConfigurer</code> in the <a shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>httpContextRef</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><strong>Deprecated and removed in Camel 2.17:</strong> <strong>Camel 2.9.2:</strong> Reference to a custom <code>org.apache.http.protocol.HttpContext</code> in the <a shape="rect" href="registry.html">Registry</a>. Use the <code>httpContext</code> option instead.</s></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpContext</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</co
 de></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.2:</strong> To use a custom <code>org.apache.http.protocol.HttpContext</code> when executing requests.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpClient.XXX</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Setting options on the <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/params/BasicHttpParams.html">BasicHttpParams</a>. For instance <code>httpClient.soTimeout=5000</code> will set the <code>SO_TIMEOUT</code> to 5 seconds. Look on the setter methods of the following parameter beans for a complete reference: <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/auth/params/AuthParamBean.html">AuthParamBean</a>, <a shape="rect" cl
 ass="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/params/ClientParamBean.html">ClientParamBean</a>, <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/conn/params/ConnConnectionParamBean.html">ConnConnectionParamBean</a>, <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/conn/params/ConnRouteParamBean.html">ConnRouteParamBean</a>, <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/cookie/params/CookieSpecParamBean.html">CookieSpecParamBean</a>, <a shape="rect" class="external-link" href="http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/params/HttpConnectionParamBean.html">HttpConnectionParamBean</a> and <a shape="rect" class="external-link" href="http://hc.apache.org/httpco
 mponents-core-ga/httpcore/apidocs/org/apache/http/params/HttpProtocolParamBean.html">HttpProtocolParamBean</a></p><p><strong>Since Camel 2.13.0: </strong>httpClient is changed to configure the <span>&#160;</span><a shape="rect" class="external-link" href="https://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/impl/client/HttpClientBuilder.html">HttpClientBuilder</a><span>&#160;and&#160;</span><a shape="rect" class="external-link" href="https://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/client/config/RequestConfig.Builder.html">RequestConfig.Builder</a>, please check out API document for a complete reference. E.g. since this version use <code>httpClient.socketTimeout=5000</code> for setting the socket timeout to 5 seconds.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>clientConnectionManager</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p>To use a custom <code>org.apache.http.conn.ClientConnectionManager</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>transferException</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If enabled and an <a shape="rect" href="exchange.html">Exchange</a> failed processing on the consumer side, and if the caused <code>Exception</code> was send back serialized in the response as a <code>application/x-java-serialized-object</code> content type (for example using <a shape="rect" href="jetty.html">Jetty</a> or <a shape="rect" href="servlet.html">SERVLET</a> Camel components). On the producer side the exception will be deserialized and thrown as is, instead of the <code>HttpOperationFailedException</code>. The caused exception is required to be serialized.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">
 <p><s><code>sslContextParametersRef</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><code>null</code></s></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><s><strong>Deprecated and removed in Camel 2.17:</strong> <strong>Camel 2.8:</strong> Reference to a <code>org.apache.camel.util.jsse.SSLContextParameters</code> in the <a shape="rect" href="registry.html">Registry</a>. <strong>Important:</strong> Only one instance of <code>org.apache.camel.util.jsse.SSLContextParameters</code> 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. See further below for more details. See <a shape="rect" href="#HTTP4-UsingtheJSSEConfigurationUtility">Using the JSSE Configuration Utility</a>. Use the <code>sslContextParameters</code> option instead.</s></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sslContextParameters</code></p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> Reference to a <code>org.apache.camel.util.jsse.SSLContextParameters</code> in the <a shape="rect" href="registry.html">Registry</a>. <strong>Important:</strong> Only one instance of <code>org.apache.camel.util.jsse.SSLContextParameters</code> 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. See further below for more details. See <a shape="rect" href="#HTTP4-UsingtheJSSEConfigurationUtility">Using the JSSE Configuration Utility</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>x509HostnameVerifier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>BrowserCompatHostnameVerifier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.7:</strong> You can refer to a dif
 ferent <code>org.apache.http.conn.ssl.X509HostnameVerifier</code> instance in the <a shape="rect" href="registry.html">Registry</a> such as <code>org.apache.http.conn.ssl.StrictHostnameVerifier</code> or <code>org.apache.http.conn.ssl.AllowAllHostnameVerifier</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>urlRewrite</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>Producer only</strong> Refers to a custom <code>org.apache.camel.component.http4.UrlRewrite</code> which allows you to rewrite urls when you bridge/proxy endpoints. See more details at <a shape="rect" href="urlrewrite.html">UrlRewrite</a> and <a shape="rect" href="how-to-use-camel-as-a-http-proxy-between-a-client-and-server.html">How to use Camel as a HTTP proxy between a client and server</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceT
 d"><p><code>maxTotalConnections</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.14</strong>: The maximum number of total connections that the connection manager has. If this option is not set, camel will use the component's setting instead.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>connectionsPerRoute</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.14</strong>: The maximum number of connections per route. <span>If this option is not set, camel will use the component's setting instead.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authenticationPreemptive</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd
 "><p><strong>Camel 2.11.3/2.12.2:</strong> If this option is true, camel-http4 sends preemptive basic authentication to the server.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eagerCheckContentAvailable</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong><span>&#160;</span><strong>Consumer only</strong><span>&#160;</span><span>&#160;Whether to eager check whether the HTTP requests has content if the content-length header is 0 or not present. </span><span>&#160;This can be turned on in case HTTP clients do not send streamed data.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>copyHeaders</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong>&#160;&#160;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).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>okStatusCodeRange</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>200-299</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong>&#160;The status codes which is considered a success response. The values are inclusive. The range must be defined as from-to with the dash included.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ignoreResponseBody</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> If this option is true, The http producer won't read response body and cache the input stream.</p></td></tr><tr><
 td colspan="1" rowspan="1" class="confluenceTd"><p><code>useSystemProperties</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.18:</strong> If this option is true, The HTTP client will use System Properties to set some parameters of his configuration</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="font-family: monospace;">mapHttpMessageBody</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.18:</strong> If this option is true then IN exchange Body will be mapped to HTTP body. Setting this to false will avoid the HTTP mapping.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>mapHttpMessageHeaders</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" row
 span="1" class="confluenceTd"><p><strong>Camel 2.18: </strong>If this option is true then IN exchange Headers will be mapped to HTTP headers. Setting this to false will avoid the HTTP Headers mapping.</p></td></tr></tbody></table></div><p>The following authentication options can also be set on the HttpEndpoint:</p><h4 id="HTTP4-SettingBasicAuthenticationandProxy">Setting Basic Authentication and Proxy</h4><p><strong>Before Camel 2.8.0</strong></p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>username</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Username for authentication.</p></td></tr><tr><t
 d colspan="1" rowspan="1" class="confluenceTd"><p><code>password</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Password for authentication.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>domain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The domain name for authentication.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>host</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The host name authentication.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyHost</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy 
 host name</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy port number</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyUsername</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Username for proxy authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyPassword</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Password for proxy authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" row
 span="1" class="confluenceTd"><p>The proxy domain name</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyNtHost</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy Nt host name</p></td></tr></tbody></table></div><p><strong>Since Camel 2.8.0</strong></p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authUsername</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Username for authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authPa
 ssword</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Password for authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The domain name for authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>authHost</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The host name authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthHost</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy host name</p></td></tr><tr><td colspan="1" rowspa
 n="1" class="confluenceTd"><p><code>proxyAuthPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy port number</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthScheme</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy scheme, will fallback and use the scheme from the endpoint if not configured.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthUsername</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Username for proxy authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthPassword</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></t
 d><td colspan="1" rowspan="1" class="confluenceTd"><p>Password for proxy authentication</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy domain name</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>proxyAuthNtHost</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The proxy Nt host name</p></td></tr></tbody></table></div><h3 id="HTTP4-MessageHeaders">Message Headers</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" cl
 ass="confluenceTd"><p><code>Exchange.HTTP_URI</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>URI to call. Will override existing URI set directly on the endpoint. This uri is the uri of the http server to call. Its not the same as the Camel endpoint uri, where you can configure endpoint options such as security etc. This header does not support that, its only the uri of the http server.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_PATH</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Request URI's path, the header will be used to build the request URI with the HTTP_URI.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_QUERY</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</co
 de></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>URI parameters. Will override existing URI parameters set directly on the endpoint.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_RESPONSE_CODE</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP response code from the external server. Is 200 for OK.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span><code>Exchange.HTTP_RESPONSE_TEXT</code><br clear="none"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><code>String</code></td><td colspan="1" rowspan="1" class="confluenceTd"><span>The HTTP response text from the external server.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.HTTP_CHARACTER_ENCODING</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td col
 span="1" rowspan="1" class="confluenceTd"><p>Character encoding.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.CONTENT_TYPE</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP content type. Is set on both the IN and OUT message to provide a content type, such as <code>text/html</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Exchange.CONTENT_ENCODING</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP content encoding. Is set on both the IN and OUT message to provide a content encoding, such as <code>gzip</code>.</p></td></tr></tbody></table></div><h3 id="HTTP4-MessageBody">Message Body</h3><p>Camel will store the HTTP response from the external server on the OUT body. All headers from the IN message will b
 e copied to the OUT message, so headers are preserved during routing. Additionally Camel will add the HTTP response headers as well to the OUT message headers.</p><p>&#160;</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Using System Properties</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When setting useSystemProperties to true, the HTTP Client will look for the following System Properties and it will use it:</p><ul><li>ssl.TrustManagerFactory.algorithm</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.trustStoreType</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.trustStore</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.trustStoreProvider</li><li><a shape="rec
 t" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.trustStorePassword</li><li>java.home</li><li>ssl.KeyManagerFactory.algorithm</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.keyStoreType</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.keyStore</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.keyStoreProvider</li><li><a shape="rect" class="external-link" href="http://javax.net/" rel="nofollow">javax.net</a>.ssl.keyStorePassword</li><li>http.proxyHost</li><li>http.proxyPort</li><li>http.nonProxyHosts</li><li>http.keepAlive</li><li>http.maxConnections</li></ul></div></div><h3 id="HTTP4-Responsecode">Response code</h3><p>Camel will handle according to the HTTP response code:</p><ul class="alternate"><li>Response code is in the range 100..299, Camel regards it as a success response.</li><li
 >Response code is in the range 300..399, Camel regards it as a redirection response and will throw a <code>HttpOperationFailedException</code> with the information.</li><li><p>Response code is 400+, Camel regards it as an external server failure and will throw a <code>HttpOperationFailedException</code> with the information.</p><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">throwExceptionOnFailure</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The option, <code>throwExceptionOnFailure</code>, can be set to <code>false</code> to prevent the <code>HttpOperationFailedException</code> from being thrown for failed response codes. This allows you to get any response from the remote server.<br clear="none"> There is a sample below demonstrating this.</p></div></div></li></ul><h3 id="HTTP4-HttpOperationFailedException">HttpOperationFailedExce
 ption</h3><p>This exception contains the following information:</p><ul class="alternate"><li>The HTTP status code</li><li>The HTTP status line (text of the status code)</li><li>Redirect location, if server returned a redirect</li><li>Response body as a <code>java.lang.String</code>, if server provided a body as response</li></ul><h3 id="HTTP4-CallingusingGETorPOST">Calling using GET or POST</h3><p>The following algorithm is used to determine whether the <code>GET</code> or <code>POST</code> HTTP method should be used:<br clear="none"> 1. Use method provided in header.<br clear="none"> 2. <code>GET</code> if query string is provided in header.<br clear="none"> 3. <code>GET</code> if endpoint is configured with a query string.<br clear="none"> 4. <code>POST</code> if there is data to send (body is not null).<br clear="none"> 5. <code>GET</code> otherwise.</p><h3 id="HTTP4-HowtogetaccesstoHttpServletRequestandHttpServletResponse">How to get access to HttpServletRequest and HttpServletR
 esponse</h3><p>You can get access to these two using the Camel type converter system using<br clear="none"> <strong>NOTE</strong> You can get the request and response not just from the processor after the camel-jetty or camel-cxf endpoint.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);
 HttpServletRequest response = exchange.getIn().getBody(HttpServletResponse.class);
 ]]></script>