第 239 章 Netty HTTP 组件(已弃用)

作为 Camel 2.12 版本提供

netty-http 组件是对 Netty 组件的扩展,使用 Netty 分离 HTTP 传输。

此 camel 组件支持制作者和消费者端点。

警告

此组件已弃用。您应该使用 Netty4 HTTP

INFO: .Netty 基于流,这意味着其接收的输入被提交到 Camel 作为流。这意味着,一次只能读取流的内容 如果发现消息正文显示为空的情况,或者您需要多次访问数据(例如:执行多播或重新传送错误处理),您应该使用 Stream 缓存或将消息正文转换为可安全地重新读取多次的 String。注意 Netty4 HTTP 使用 io.netty.handler.codec.http.HttpObjectAggregator 将整个流读取到内存中,以构建完整的 http 消息。但是生成的消息仍是一个基于流的消息,它可以被读取一次。

Maven 用户需要将以下依赖项添加到其 pom.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>

239.1. URI 格式

netty 组件的 URI 方案如下

netty-http:http://localhost:8080[?options]

您可以使用以下格式在 URI 中附加查询选项 ?option=value&option=value&…​

INFO: 查询参数与端点选项。您可以了解 Camel 如何识别 URI 查询参数和端点选项。例如,您可以创建如下所示的端点 URI - netty-http:http//example.com?myParam=myValue&compression=true。在本例中,myParam 是 HTTP 参数,而 compression 是 Camel 端点选项。在这种情况下,Camel 使用的策略是解析可用的端点选项,并将它们从 URI 中删除。这意味着,对于所讨论的示例,由 Netty HTTP producer 发送的 HTTP 请求将如下所示: http//example.com?myParam=myValue,因为 压缩 端点选项将从目标 URL 中解析并删除。请记住,您不能使用动态标头(如 CamelHttpQuery)指定端点选项。端点选项只能在端点 URI 定义级别上指定(如 DSL 元素)。