151.2. Http4 组件选项
HTTP4 组件支持 18 个选项,如下所列。
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
httpClientConfigurer (advanced) | 若要使用自定义 HttpClientConfigurer 来执行要使用的 HttpClient 配置。 | HttpClientConfigurer | |
clientConnectionManager (advanced) | 使用自定义和共享 HttpClientConnectionManager 来管理连接。如果进行了配置,则始终将此端点用于此组件创建的所有端点。 | HttpClientConnection Manager | |
httpContext (advanced) | 在执行请求时使用自定义 org.apache.http.protocol.HttpContext。 | HttpContext | |
sslContextParameters (security) | 使用 SSLContextParameters 配置安全性。重要: 每个 HttpComponent 支持 org.apache.camel.util.jsse.SSLContextParameters 的一个实例。如果您需要使用 2 个或更多不同的实例,您需要为每个实例定义一个新的 HttpComponent。 | SSLContextParameters | |
useGlobalSslContext 参数 (security) | 启用使用全局 SSL 上下文参数。 | false | 布尔值 |
x509HostnameVerifier (security) | 使用自定义 X509HostnameVerifier,如 DefaultHostnameVerifier 或 org.apache.http.conn.ssl.NoopHostnameVerifier。 | HostnameVerifier | |
maxTotalConnections (advanced) | 连接的最大数量。 | 200 | int |
connectionsPerRoute (advanced) | 每个路由的最大连接数。 | 20 | int |
connectionTimeToLive (advanced) | 连接到 live 的时间,时间单位为 millisecond,默认值为始终保持活动状态。 | long | |
cookieStore (producer) | 使用自定义 org.apache.http.client.CookieStore。默认情况下,使用 org.apache.http.impl.client.BasicCookieStore,它是一个仅限内存的 Cookie 存储。请注意,如果 bridgeEndpoint=true,那么 Cookie 存储被强制成为 noop cookie 存储,因为 Cookie 不应像我们只是桥接一样存储(例如作为代理)。 | CookieStore | |
connectionRequest Timeout (timeout) | 从连接管理器请求连接时使用的超时时间(毫秒)。超时值为零解释为无限超时。超时值为零解释为无限超时。负值被解释为 undefined (系统默认值)。默认: code -1 | -1 | int |
connectTimeout (timeout) | 决定在建立连接前的超时时间(以毫秒为单位)。超时值为零解释为无限超时。超时值为零解释为无限超时。负值被解释为 undefined (系统默认值)。默认: code -1 | -1 | int |
socketTimeout (timeout) | 以毫秒为单位定义套接字超时(SO_TIMEOUT),这是等待数据的超时时间,或者以不同方式设置,一个最长期限在两个连续数据数据包之间不活跃。超时值为零解释为无限超时。负值被解释为 undefined (系统默认值)。默认: code -1 | -1 | int |
httpBinding (advanced) | 使用自定义 HttpBinding 来控制 Camel 消息和 HttpClient 之间的映射。 | HttpBinding | |
httpConfiguration (advanced) | 将共享 HttpConfiguration 用作基础配置。 | HttpConfiguration | |
允许JavaSerialized Object (advanced) | 当请求使用 context-type=application/x-java-serialized-object 时,是否允许 java serialization。默认为关闭。如果您启用它,则 Java 会将传入的数据反序列化 Java 请求,这可能会成为潜在的安全风险。 | false | 布尔值 |
headerFilterStrategy (filter) | 使用自定义 org.apache.camel.spi.HeaderFilterStrategy 过滤到 Camel 消息的标头。 | HeaderFilterStrategy | |
resolveProperty Placeholders (advanced) | 组件是否应在启动时解析属性占位符。只有 String 类型的属性可以使用属性占位符。 | true | 布尔值 |
HTTP4 端点使用 URI 语法进行配置:
http4:httpUri
使用以下路径和查询参数:
151.2.1. 路径参数(1 参数):
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
httpUri | 必需 调用的 HTTP 端点的 url。 | URI |
151.2.2. 查询参数(49 参数):
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
disableStreamCache (common) | 确定 Servlet 中的原始输入流是否被缓存(Camel 将会在 memory/overflow 中读取流到文件,流缓存)缓存。默认情况下,Camel 将缓存 Servlet 输入流,以支持多次读取,以确保其 Camel 可以从流检索所有数据。但是,当您需要访问原始流时,您可以将此选项设置为 true,例如将其直接流传输到文件或其他持久性存储。DefaultHttpBinding 将请求输入流复制到流缓存中,如果此选项为 false,则将它放入消息正文,以支持多次读取流。如果您使用 Servlet 到 bridge/proxy 端点,则请考虑启用此选项来提高性能,如果您不需要多次读取消息有效负载。http/http4 producer 默认缓存响应正文流。如果将此选项设置为 true,则生成者不会缓存响应正文流,而是使用响应流作为消息正文。 | false | 布尔值 |
headerFilterStrategy (common) | 使用自定义 HeaderFilterStrategy 过滤到 Camel 消息的标头。 | HeaderFilterStrategy | |
httpBinding (common) | 使用自定义 HttpBinding 来控制 Camel 消息和 HttpClient 之间的映射。 | HttpBinding | |
authenticationPreemptive (producer) | 如果此选项为 true,camel-http4 会将抢占基本身份验证发送到服务器。 | false | 布尔值 |
bridgeEndpoint (producer) | 如果选项为 true,则 HttpProducer 将忽略 Exchange.HTTP_URI 标头,并使用端点的 URI 进行请求。您也可以将 选项 throwExceptionOnFailure 设置为 false,让 HttpProducer 发送所有错误响应。 | false | 布尔值 |
chunked (producer) | 如果此选项为 false,则 Servlet 将禁用 HTTP 流,并在响应上设置 content-length 标头 | true | 布尔值 |
clearExpiredCookies (producer) | 在发送 HTTP 请求前是否清除过期的 Cookie。这样可确保 Cookie 存储不会通过添加新 Cookie (当它们过期时删除)来保持增长。 | true | 布尔值 |
connectionClose (producer) | 指定是否应将 Connection Close 标头添加到 HTTP Request 中。默认情况下,connectionClose 为 false。 | false | 布尔值 |
cookieStore (producer) | 使用自定义 CookieStore。默认情况下,使用 BasicCookieStore,它是一个仅内存的 cookie 存储。请注意,如果 bridgeEndpoint=true,那么 Cookie 存储被强制成为 noop cookie 存储,因为 Cookie 不应像我们只是桥接一样存储(例如作为代理)。如果设置了 CookieHandler,则 Cookie 存储也强制成为 noop cookie 存储,因为 Cookie 处理随后由 cookieHandler 执行。 | CookieStore | |
copyHeaders (producer) | 如果此选项为 true,则 IN Exchange 标头将根据复制策略复制到 OUT 交换标头。把它设置为 false,仅允许包含来自 HTTP 响应的标头(而不是传播 IN 标头)。 | true | 布尔值 |
deleteWithBody (producer) | HTTP DELETE 是否应该包含消息正文。默认情况下,HTTP DELETE 不包含任何 HTTP 信息。然而,在某些情况下,用户可能需要包含消息正文。 | false | 布尔值 |
httpMethod (producer) | 配置要使用的 HTTP 方法。如果设置,HttpMethod 标头无法覆盖此选项。 | HttpMethods | |
ignoreResponseBody (producer) | 如果此选项为 true,http producer 不会读取响应正文,并缓存输入流 | false | 布尔值 |
preserveHostHeader (producer) | 如果选项为 true,HttpProducer 会将 Host 标头设置为当前交换主机标头中包含的值,这适用于您希望下游服务器收到的 Host 标头来反映上游客户端调用的 URL 的 URL,这将允许使用 Host 标头为代理服务生成准确的 URL 的应用 | false | 布尔值 |
throwExceptionOnFailure (producer) | 如果来自远程服务器的失败响应,用于禁用抛出 HttpOperationFailedException。这样,您可以获取所有响应,而不考虑 HTTP 状态代码。 | true | 布尔值 |
transferException (producer) | 如果在消费者端启用并交换失败处理,如果原因 Exception 在响应中作为 application/x-java-serialized-object 内容类型发送序列化,则结果为 application/x-java-serialized-object 内容类型。在生产者侧,异常将反序列化并丢弃为原样,而不是 HttpOperationFailedException。原因异常需要按顺序处理。默认为关闭。如果您启用它,则 Java 会将传入的数据反序列化 Java 请求,这可能会成为潜在的安全风险。 | false | 布尔值 |
cookieHandler (producer) | 配置 Cookie 处理程序,以维护 HTTP 会话 | CookieHandler | |
okStatusCodeRange (producer) | 被视为成功响应的状态代码。值包含。可以定义多个范围,用逗号分开,例如 200-204,209,301-304。每个范围必须是单个数字,或从 到,其中包含短划线。 | 200-299 | 字符串 |
urlRewrite (producer) | 弃用 引用自定义 org.apache.camel.component.http.UrlRewrite,它允许您在 bridge/proxy 端点时重写 url。更多信息,请访问 http://camel.apache.org/urlrewrite.html | UrlRewrite | |
ClientBuilder (advanced) | 提供对此端点的生产者或消费者使用的新 RequestConfig 实例上使用的 http 客户端请求参数的访问权限。 | HttpClientBuilder | |
clientConnectionManager (advanced) | 使用自定义 HttpClientConnectionManager 管理连接 | HttpClientConnection Manager | |
connectionsPerRoute (advanced) | 每个路由的最大连接数。 | 20 | int |
httpclient ( advanced) | 设置一个由制作者使用的自定义 HttpClient | HttpClient | |
httpClientConfigurer (advanced) | 为生成者或消费者创建的新 HttpClient 实例注册自定义配置策略,如配置身份验证机制等 | HttpClientConfigurer | |
httpClientOptions (advanced) | 使用映射中的键/值配置 HttpClient: | Map | |
httpContext (advanced) | 使用自定义 HttpContext 实例 | HttpContext | |
mapHttpMessageBody (advanced) | 如果此选项为 true,则交换的 IN Exchange Body 将映射到 HTTP 正文。把它设置为 false 可以避免 HTTP 映射。 | true | 布尔值 |
mapHttpMessageFormUrl EncodedBody (advanced) | 如果此选项为 true,则交换的 IN Exchange Form Encoded body 将映射到 HTTP。把它设置为 false 可以避免 HTTP Form Encoded body 映射。 | true | 布尔值 |
mapHttpMessageHeaders (advanced) | 如果此选项为 true,则交换的 IN Exchange Headers 将映射到 HTTP 标头。把它设置为 false 将避免 HTTP 标头映射。 | true | 布尔值 |
maxTotalConnections (advanced) | 连接的最大数量。 | 200 | int |
同步 (高级) | 设置是否应严格使用同步处理,还是允许 Camel 使用异步处理(如果支持)。 | false | 布尔值 |
useSystemProperties (advanced) | 使用系统属性作为配置的回退 | false | 布尔值 |
proxyAuthDomain (proxy) | 与 NTML 搭配使用的代理身份验证域 | 字符串 | |
proxyAuthHost (proxy) | 代理身份验证主机 | 字符串 | |
proxyAuthMethod (proxy) | 要使用的代理验证方法 | 字符串 | |
proxyAuthPassword (proxy) | 代理身份验证密码 | 字符串 | |
proxyAuthPort (proxy) | 代理身份验证端口 | int | |
proxyAuthScheme (proxy) | 要使用的代理身份验证方案 | 字符串 | |
proxyAuthUsername (proxy) | 代理身份验证用户名 | 字符串 | |
proxyHost (proxy) | 要使用的代理主机名 | 字符串 | |
proxyPort (proxy) | 要使用的代理端口 | int | |
authDomain (security) | 与 NTML 搭配使用的身份验证域 | 字符串 | |
authHost (security) | 与 NTML 搭配使用的身份验证主机 | 字符串 | |
authmethod ( security) | 允许将 身份验证方法用作以逗号分开的值列表,即 Basic、Digest 或 NTLM。 | 字符串 | |
authMethodPriority (security) | 要优先使用哪个验证方法,可以是 Basic、Digest 或 NTLM。 | 字符串 | |
authPassword (security) | 身份验证密码 | 字符串 | |
authUsername (security) | 身份验证用户名 | 字符串 | |
sslContextParameters (security) | 使用 SSLContextParameters 配置安全性。重要: 每个 HttpComponent 支持 org.apache.camel.util.jsse.SSLContextParameters 的一个实例。如果您需要使用 2 个或更多不同的实例,您需要为每个实例定义一个新的 HttpComponent。 | SSLContextParameters | |
x509HostnameVerifier (security) | 使用自定义 X509HostnameVerifier,如 DefaultHostnameVerifier 或 org.apache.http.conn.ssl.NoopHostnameVerifier。 | HostnameVerifier |