Modified: websites/production/camel/content/http4.html
==============================================================================
--- websites/production/camel/content/http4.html (original)
+++ websites/production/camel/content/http4.html Tue Jan  5 17:22:31 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"><code>allowJavaSerializedObject</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><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.</td></tr></tbody></table></div><p>&#160;</p><h3 id="HTTP4-HttpEndpointOp
 tions">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, HttpProdu
 cer 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" 
rowspa
 n="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.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><c
 ode>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 the <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><code>httpClientConfigurerRef</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.HttpClientConfigurer</code> in the <a 
shape="rect" href="registry.html">Registry</a>. Use the 
<code>httpClientConfigurer</code> option instead.</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.c
 amel.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>httpContextRef</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> <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.</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>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" class="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/httpcomponents-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 sh
 ape="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 
colspan="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><code>sslContextParametersRef</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> <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.</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 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>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="confluenceTd"><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 tot
 al 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"><code>eagerCheckContentAvailable<
 /code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><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></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>copyHeaders</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>true</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><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).</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><code>okSta
 tusCodeRange</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>200-299</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><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.</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><code>ignoreResponseBody</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> If 
this option is true, The http producer won't read response body and cache the 
input stream.</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" r
 owspan="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>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" 
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" r
 owspan="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</cod
 e></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 confi
 gured.</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></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" 
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 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</cod
 e></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><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">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 reque
 st 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"><code>allowJavaSerializedObject</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><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.</td></tr></tbody></table></div><p>&#160;</p><h3 id="HTTP4-HttpEndpointOp
 tions">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, HttpProdu
 cer 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" 
rowspa
 n="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.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><c
 ode>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 the <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><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 <cod
 e>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</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>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" class="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="ex
 ternal-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/httpcomponents-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 
colspan="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><c
 ode>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.uti
 l.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 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.StrictHostnameVeri
 fier</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="confluenceTd"><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>Came
 l 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="confl
 uenceTd"><code>eagerCheckContentAvailable</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><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></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>copyHeaders</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>true</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><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).</td></tr><tr><td 
colspan="1" ro
 wspan="1" class="confluenceTd"><code>okStatusCodeRange</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>200-299</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><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.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>ignoreResponseBody</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> If this option is 
true, The http producer won't read response body and cache the input 
stream.</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="con
 fluenceTable"><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 authen
 tication.</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" 
 >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="confl
 uenceTh"><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" c
 lass="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 colspan="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="confl
 uenceTd"><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" 
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 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="confluenceT
 d"><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><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>Ht
 tpOperationFailedException</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">
 <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>


Reply via email to