h2. Netty HTTP Component
*Available as of Camel 2.12*

The *netty-http* component is an extension to [Netty] component to facilitiate HTTP transport with [Netty].

This camel component supports both producer and consumer endpoints.

{info:title=Stream}
Netty is stream based, which means the input it receives is submitted to Camel as a stream. That means you will only be able to read the content of the stream *once*.
If you find a situation where the message body appears to be empty or you need to access the data multiple times (eg: doing multicasting, or redelivery error handling)
you should use [Stream Caching] or convert the message body to a {{String}} which is safe to be re-read multiple times.
{info}

Maven users will need to add the following dependency to their {{pom.xml}} for this component:
{code:xml}
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-netty-http</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
{code}

h3. URI format

The URI scheme for a netty component is as follows

{code}
netty-http:http://localhost:8080[?options]
{code}

You can append query options to the URI in the following format, {{?option=value&option=value&...}}

h3. HTTP Options

*Important:* This component inherits all the options from [Netty]. So make sure to look at the [Netty] documentation as well.
Notice that some options from [Netty] is not applicable when using this [Netty HTTP] component, such as options related to UDP transport.

{div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{chunked}} | {{true}} | Allow using chunked transfer if the client supports it from the HTTP headers. |
| {{compression}} | {{false}} | Allow using gzip/deflate for compression if the client supports it from the HTTP headers. |
| {{nettyHttpBinding}} | | To use a custom {{org.apache.camel.component.netty.http.NettyHttpBinding}} for binding to/from Netty and Camel Message API. |
| {{headerFilterStrategy}} | | To use a custom  {{org.apache.camel.spi.HeaderFilterStrategy}} to filter headers. |
| {{traceEnabled}} | {{false}} | Specifies whether to enable HTTP TRACE for this Netty HTTP consumer. By default TRACE is turned off. |
| {{httpMethodRestrict}} | | To disable HTTP methods on the Netty HTTP consumer. You can specify multiple separated by comma. |
{div}

h3. Message Headers

The following headers can be used on the producer to control the HTTP request.

{div:class=confluenceTableSmall}
|| Name || Type || Description ||
| {{CamelHttpMethod}} | {{String}} | Allow to control what HTTP method to use such as GET, POST, TRACE etc. The type can also be a {{org.jboss.netty.handler.codec.http.HttpMethod}} instance. |
| {{Content-Type}} | {{String}} | To set the content-type of the HTTP body. For example: {{text/plain; charset="UTF-8"}}. |
{div}




{include:Endpoint See Also}
- [Netty]