| <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>HTTP :: Apache Camel</title> <link rel="canonical" href="https://camel.apache.org/components/4.18.x/http-component.html"> <meta name="description" content="Send requests to external HTTP servers using Apache HTTP Client 5.x."> <meta name="generator" content="Antora 3.1.7"> <link rel="stylesheet" href="../../_/css/site-5c323c41e9.css"> <meta name="application-name" content="Apache Camel"> <meta property="og:title" content="HTTP"> <meta property="og:site_name" content="Apache Camel"> <meta property="og:url" content="https://camel.apache.org"> <meta property="og:description" content="Apache Camel is an open source integration framework with 350+ connectors for databases, APIs, message brokers, and cloud services. Write routes in Java, YAML, or XML. Run on Spring Boot, Quarkus, or standalone with the Camel CLI. In production since 2007. Apache License 2.0."> <meta property="og:type" content="website"> <meta property="og:image" content="https://camel.apache.org/_/img/logo-d-a567cee6fa.svg"> <link rel="manifest" href="../../site.webmanifest"> <link rel="apple-touch-icon-precomposed" sizes="57x57" href="../../apple-touch-icon-57x57.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../apple-touch-icon-114x114.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../apple-touch-icon-72x72.png"> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../apple-touch-icon-144x144.png"> <link rel="apple-touch-icon-precomposed" sizes="60x60" href="../../apple-touch-icon-60x60.png"> <link rel="apple-touch-icon-precomposed" sizes="120x120" href="../../apple-touch-icon-120x120.png"> <link rel="apple-touch-icon-precomposed" sizes="76x76" href="../../apple-touch-icon-76x76.png"> <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../apple-touch-icon-152x152.png"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <link rel="icon" type="image/png" href="../../favicon-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="../../favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="../../favicon-16x16.png" sizes="16x16"> <link rel="icon" type="image/png" href="../../favicon-128.png" sizes="128x128"> </head> <body class="article"> <header class="header"> <nav class="navbar" aria-label="Main menu"> <div class="navbar-brand"> <a class="nav-logo" href="../.."></a> <div id="topbar-nav" class="navbar-menu"> <div class="navbar-end"> <a class="navbar-item-section navbar-item navbar-topics" href="../../blog/"> <img alt="Blog" src="/_/img/blog-4c7fa4cb60.svg"> Blog </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../docs/"> <img alt="Documentation" src="/_/img/documentation-abb1b7f8b1.svg"> Documentation </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../community/"> <img alt="Community" src="/_/img/community-2ec8a3dc8b.svg"> Community </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../tooling/"> <img alt="Tooling" src="/_/img/tooling-f5e235c238.svg"> Tooling </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../download/"> <img alt="Download" src="/_/img/download-63cdd75074.svg"> Download </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../security/"> <img alt="Security" src="/_/img/security-06abe157b3.svg"> Security </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../trust/"> <img alt="Trust" src="/_/img/security-06abe157b3.svg"> Trust </a> </div> </div> <div class="navbar-fill"></div> <div class="break-row"></div> <div class="navbar-search results-hidden"> <input id="search" class="search" placeholder="Search" autocomplete="off" maxlength="200"> <img src="../../_/img/cancel-1ed239489b.svg" alt="Clear" id="search-cancel"> <div id="search_results"></div> </div> <div class="navbar-tools"> <a rel="noopener noreferrer nofollow" href="https://github.com/apache/camel/" title="Collaborate on GitHub"><svg focusable="false" class="brand-icon"><use xlink:href="../../_/img/brand-logos-a2b35bbdec.svg#github"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://camel.zulipchat.com" title="Chat on Zulip"><svg focusable="false" class="brand-icon"><use xlink:href="../../_/img/brand-logos-a2b35bbdec.svg#zulip"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://twitter.com/ApacheCamel" title="Follow Apache Camel on Twitter"><svg focusable="false" class="brand-icon"><use xlink:href="../../_/img/brand-logos-a2b35bbdec.svg#twitter"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://www.linkedin.com/groups/2447439/" title="Apache Camel group on Linkedin"><svg focusable="false" class="brand-icon"><use xlink:href="../../_/img/brand-logos-a2b35bbdec.svg#linkedin"/></svg></a> </div> <button class="navbar-burger" data-target="topbar-nav" type="button" aria-label="Menu"> <span></span> <span></span> <span></span> </button> </div> </nav> </header> <a id="top"></a> <div class="body"> <div class="nav-container" data-component="components" data-version="next"> <aside class="nav" aria-label="Side menu"> <div class="panels"> <div class="nav-panel-menu is-active"> <input class="search" placeholder="Quick lookup"> <nav class="nav-menu" data-panel="menu" aria-label="Topics"> <h3 class="title"><a href="index.html">Camel Components</a></h3> <ul class="nav-list"> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="index.html">Components</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="activemq-component.html">ActiveMQ 5.x</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="activemq6-component.html">ActiveMQ 6.x</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="ai-summary.html">AI</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="a2a-component.html">A2A</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ai-tool-component.html">AI Tool</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="chatscript-component.html">ChatScript</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="djl-component.html">Deep Java Library</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="docling-component.html">Docling</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="huggingface-component.html">Hugging Face</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kserve-component.html">KServe</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="langchain4j-agent-component.html">LangChain4j Agent</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="langchain4j-chat-component.html">LangChain4j Chat</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="langchain4j-embeddingstore-component.html">LangChain4j Embedding Store</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="langchain4j-embeddings-component.html">LangChain4j Embeddings</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="langchain4j-tools-component.html">LangChain4j Tools</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="langchain4j-web-search-component.html">LangChain4j Web Search</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="milvus-component.html">Milvus</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="neo4j-component.html">Neo4j</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openai-component.html">OpenAI</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="pgvector-component.html">PGVector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="pinecone-component.html">Pinecone</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="qdrant-component.html">Qdrant</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-ai-chat-component.html">Spring AI Chat</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-ai-embeddings-component.html">Spring AI Embeddings</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-ai-image-component.html">Spring AI Image</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-ai-tools-component.html">Spring AI Tools</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-ai-vector-store-component.html">Spring AI Vector Store</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="tensorflow-serving-component.html">TensorFlow Serving</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="weaviate-component.html">weaviate</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="amqp-component.html">AMQP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="arangodb-component.html">ArangoDb</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="as2-component.html">AS2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="asterisk-component.html">Asterisk</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="atmosphere-websocket-component.html">Atmosphere Websocket</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="atom-component.html">Atom</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="avro-component.html">Avro RPC</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="aws-summary.html">AWS</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-athena-component.html">AWS Athena</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws-bedrock-component.html">AWS Bedrock</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws-bedrock-agent-component.html">AWS Bedrock Agent</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws-bedrock-agent-runtime-component.html">AWS Bedrock Agent Runtime</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws-cloudtrail-component.html">AWS CloudTrail</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-cw-component.html">AWS CloudWatch</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-comprehend-component.html">AWS Comprehend</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws-config-component.html">AWS Config Service</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-ddb-component.html">AWS DynamoDB</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-ddbstream-component.html">AWS DynamoDB Streams</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-ec2-component.html">AWS Elastic Compute Cloud (EC2)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-ecs-component.html">AWS Elastic Container Service (ECS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-eks-component.html">AWS Elastic Kubernetes Service (EKS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-eventbridge-component.html">AWS Eventbridge</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-iam-component.html">AWS Identity and Access Management (IAM)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-kms-component.html">AWS Key Management Service (KMS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-kinesis-component.html">AWS Kinesis</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-kinesis-firehose-component.html">AWS Kinesis Firehose</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-lambda-component.html">AWS Lambda</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-msk-component.html">AWS Managed Streaming for Apache Kafka (MSK)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-mq-component.html">AWS MQ</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws-parameter-store-component.html">AWS Parameter Store</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-polly-component.html">AWS Polly</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-redshift-data-component.html">AWS RedshiftData</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-rekognition-component.html">AWS Rekognition</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-s3-component.html">AWS S3 Storage Service</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-s3-vectors-component.html">AWS S3 Vectors</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws-secrets-manager-component.html">AWS Secrets Manager</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws-security-hub-component.html">AWS Security Hub</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-sts-component.html">AWS Security Token Service (STS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-ses-component.html">AWS Simple Email Service (SES)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-sns-component.html">AWS Simple Notification System (SNS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-sqs-component.html">AWS Simple Queue Service (SQS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-step-functions-component.html">AWS StepFunctions</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-textract-component.html">AWS Textract</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-timestream-component.html">AWS Timestream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-transcribe-component.html">AWS Transcribe</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="aws2-translate-component.html">AWS Translate</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="azure-summary.html">Azure</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-cosmosdb-component.html">Azure CosmosDB</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-eventgrid-component.html">Azure Event Grid</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-eventhubs-component.html">Azure Event Hubs</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-files-component.html">Azure Files</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-functions-component.html">Azure Functions</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-key-vault-component.html">Azure Key Vault</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-servicebus-component.html">Azure ServiceBus</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-storage-blob-component.html">Azure Storage Blob Service</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-storage-datalake-component.html">Azure Storage Data Lake Service</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="azure-storage-queue-component.html">Azure Storage Queue Service</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="bean-component.html">Bean</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="bean-validator-component.html">Bean Validator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="bonita-component.html">Bonita</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="box-component.html">Box</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="braintree-component.html">Braintree</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="browse-component.html">Browse</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="caffeine-cache-component.html">Caffeine Cache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="caffeine-loadcache-component.html">Caffeine LoadCache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="camunda-component.html">Camunda</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="cql-component.html">Cassandra CQL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="chunk-component.html">Chunk</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="class-component.html">Class</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="clickhouse-component.html">ClickHouse</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="clickup-component.html">ClickUp</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="cm-sms-component.html">CM SMS Gateway</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="coap-component.html">CoAP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="cometd-component.html">CometD</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="consul-component.html">Consul</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="controlbus-component.html">Control Bus</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="couchbase-component.html">Couchbase</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="couchdb-component.html">CouchDB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="cron-component.html">Cron</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="crypto-component.html">Crypto (JCE)</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="cxf-component.html">CXF</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="cxfrs-component.html">CXF-RS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="cyberark-vault-component.html">CyberArk Vault</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dapr-component.html">Dapr</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformat-component.html">Data Format</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataset-component.html">Dataset</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataset-test-component.html">DataSet Test</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="debezium-summary.html">Debezium</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="debezium-db2-component.html">Debezium DB2 Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="debezium-mongodb-component.html">Debezium MongoDB Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="debezium-mysql-component.html">Debezium MySQL Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="debezium-oracle-component.html">Debezium Oracle Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="debezium-postgres-component.html">Debezium PostgreSQL Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="debezium-sqlserver-component.html">Debezium SQL Server Connector</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dfdl-component.html">DFDL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dhis2-component.html">DHIS2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="digitalocean-component.html">DigitalOcean</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="direct-component.html">Direct</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="disruptor-component.html">Disruptor</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="disruptor-vm-component.html">Disruptor VM</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dns-component.html">DNS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="docker-component.html">Docker</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="drill-component.html">Drill</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dropbox-component.html">Dropbox</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="duckdb-component.html">DuckDB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dynamic-router-component.html">Dynamic Router</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dynamic-router-control-component.html">Dynamic Router Control</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ehcache-component.html">Ehcache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="elasticsearch-component.html">Elasticsearch</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="elasticsearch-rest-client-component.html">Elasticsearch Low level Rest Client</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="event-component.html">Event</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="exec-component.html">Exec</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="fhir-component.html">FHIR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="file-component.html">File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="file-watch-component.html">File Watch</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="flatpack-component.html">Flatpack</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="flink-component.html">Flink</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="flowable-component.html">Flowable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="fop-component.html">FOP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="freemarker-component.html">Freemarker</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ftp-component.html">FTP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ftps-component.html">FTPS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="geocoder-component.html">Geocoder</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="git-component.html">Git</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="github2-component.html">GitHub2</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="google-summary.html">Google</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-bigquery-component.html">Google BigQuery</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-bigquery-sql-component.html">Google BigQuery Standard SQL</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-calendar-component.html">Google Calendar</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-calendar-stream-component.html">Google Calendar Stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-functions-component.html">Google Cloud Functions</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-speech-to-text-component.html">Google Cloud Speech To Text</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-text-to-speech-component.html">Google Cloud Text To Speech</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-vision-component.html">Google Cloud Vision</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-drive-component.html">Google Drive</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-firestore-component.html">Google Firestore</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-mail-component.html">Google Mail</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-mail-stream-component.html">Google Mail Stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-pubsub-component.html">Google Pubsub</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-secret-manager-component.html">Google Secret Manager</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-sheets-component.html">Google Sheets</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-sheets-stream-component.html">Google Sheets Stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-storage-component.html">Google Storage</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="google-vertexai-component.html">Google Vertex AI</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="graphql-component.html">GraphQL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="grpc-component.html">gRPC</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="hashicorp-vault-component.html">HashiCorp Vault</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="hazelcast-summary.html">Hazelcast</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-atomicvalue-component.html">Hazelcast Atomic Number</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-instance-component.html">Hazelcast Instance</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-list-component.html">Hazelcast List</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-map-component.html">Hazelcast Map</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-multimap-component.html">Hazelcast Multimap</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-pncounter-component.html">Hazelcast PN Counter</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-queue-component.html">Hazelcast Queue</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-replicatedmap-component.html">Hazelcast Replicated Map</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-ringbuffer-component.html">Hazelcast Ringbuffer</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-seda-component.html">Hazelcast SEDA</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-set-component.html">Hazelcast Set</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hazelcast-topic-component.html">Hazelcast Topic</a> </li> </ul> </li> <li class="nav-item is-current-page" data-depth="2"> <a class="nav-link" href="http-component.html">HTTP</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="hwcloud-summary.html">Huawei Cloud</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hwcloud-frs-component.html">Huawei Cloud Face Recognition Service (FRS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hwcloud-imagerecognition-component.html">Huawei Cloud Image Recognition</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hwcloud-dms-component.html">Huawei Distributed Message Service (DMS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hwcloud-functiongraph-component.html">Huawei FunctionGraph</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hwcloud-iam-component.html">Huawei Identity and Access Management (IAM)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hwcloud-obs-component.html">Huawei Object Storage Service (OBS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="hwcloud-smn-component.html">Huawei Simple Message Notification (SMN)</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="ibm-summary.html">IBM</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ibm-cos-component.html">IBM Cloud Object Storage</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ibm-secrets-manager-component.html">IBM Secrets Manager</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ibm-watson-discovery-component.html">IBM Watson Discovery</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ibm-watson-language-component.html">IBM Watson Language</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ibm-watson-speech-to-text-component.html">IBM Watson Speech to Text</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ibm-watson-text-to-speech-component.html">IBM Watson Text to Speech</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ibm-watsonx-ai-component.html">IBM watsonx.ai</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ibm-watsonx-data-component.html">IBM watsonx.data</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="iec60870-client-component.html">IEC 60870 Client</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="iec60870-server-component.html">IEC 60870 Server</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="iggy-component.html">Iggy</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="ignite-summary.html">Ignite</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ignite-cache-component.html">Ignite Cache</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ignite-compute-component.html">Ignite Compute</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ignite-events-component.html">Ignite Events</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ignite-idgen-component.html">Ignite ID Generator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ignite-messaging-component.html">Ignite Messaging</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ignite-queue-component.html">Ignite Queues</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ignite-set-component.html">Ignite Sets</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="infinispan-component.html">Infinispan</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="infinispan-embedded-component.html">Infinispan Embedded</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="influxdb-component.html">InfluxDB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="influxdb2-component.html">InfluxDB2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="irc-component.html">IRC</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ironmq-component.html">IronMQ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jcache-component.html">JCache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jcr-component.html">JCR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jdbc-component.html">JDBC</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jetty-component.html">Jetty</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jgroups-component.html">JGroups</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jgroups-raft-component.html">JGroups raft</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jira-component.html">Jira</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jms-component.html">JMS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jmx-component.html">JMX</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jolt-component.html">JOLT</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jooq-component.html">JOOQ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jpa-component.html">JPA</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jslt-component.html">JSLT</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="json-validator-component.html">JSON Schema Validator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jsonata-component.html">JSONata</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="json-patch-component.html">JsonPatch</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jt400-component.html">JT400</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jte-component.html">JTE</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="kafka-component.html">Kafka</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="kamelet-component.html">Kamelet</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="keycloak-component.html">Keycloak</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="knative-component.html">Knative</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="knative-http-component.html">Knative Http</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="kubernetes-summary.html">Kubernetes</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-config-maps-component.html">Kubernetes ConfigMap</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-cronjob-component.html">Kubernetes Cronjob</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-custom-resources-component.html">Kubernetes Custom Resources</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-deployments-component.html">Kubernetes Deployments</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-events-component.html">Kubernetes Event</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-hpa-component.html">Kubernetes HPA</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-job-component.html">Kubernetes Job</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-namespaces-component.html">Kubernetes Namespaces</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-nodes-component.html">Kubernetes Nodes</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-persistent-volumes-component.html">Kubernetes Persistent Volume</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-persistent-volumes-claims-component.html">Kubernetes Persistent Volume Claim</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-pods-component.html">Kubernetes Pods</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-replication-controllers-component.html">Kubernetes Replication Controller</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-resources-quota-component.html">Kubernetes Resources Quota</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-secrets-component.html">Kubernetes Secrets</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-service-accounts-component.html">Kubernetes Service Account</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="kubernetes-services-component.html">Kubernetes Services</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openshift-build-configs-component.html">OpenShift Build Config</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openshift-builds-component.html">OpenShift Builds</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openshift-deploymentconfigs-component.html">OpenShift Deployment Configs</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="kudu-component.html">Kudu</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="language-component.html">Language</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ldap-component.html">LDAP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ldif-component.html">LDIF</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="log-component.html">Log Data</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="lucene-component.html">Lucene</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="lumberjack-component.html">Lumberjack</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mail-component.html">Mail</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mapstruct-component.html">MapStruct</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="master-component.html">Master</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="metrics-component.html">Metrics</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="micrometer-component.html">Micrometer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mina-component.html">Mina</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mina-sftp-component.html">MINA SFTP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="minio-component.html">Minio</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mllp-component.html">MLLP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mock-component.html">Mock</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mongodb-component.html">MongoDB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mongodb-gridfs-component.html">MongoDB GridFS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mustache-component.html">Mustache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mvel-component.html">MVEL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mybatis-component.html">MyBatis</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mybatis-bean-component.html">MyBatis Bean</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="nats-component.html">Nats</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="netty-component.html">Netty</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="netty-http-component.html">Netty HTTP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="oaipmh-component.html">OAI-PMH</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="olingo2-component.html">Olingo2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="olingo4-component.html">Olingo4</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="once-component.html">Once</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="milo-browse-component.html">OPC UA Browser</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="milo-client-component.html">OPC UA Client</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="milo-server-component.html">OPC UA Server</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="opensearch-component.html">OpenSearch</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="openstack-summary.html">OpenStack</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openstack-cinder-component.html">OpenStack Cinder</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openstack-glance-component.html">OpenStack Glance</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openstack-keystone-component.html">OpenStack Keystone</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openstack-neutron-component.html">OpenStack Neutron</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openstack-nova-component.html">OpenStack Nova</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="openstack-swift-component.html">OpenStack Swift</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="opentelemetry-metrics-component.html">OpenTelemetry Metrics</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="optaplanner-component.html">OptaPlanner</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="paho-component.html">Paho</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="paho-mqtt5-component.html">Paho MQTT 5</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="pdf-component.html">PDF</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="platform-http-component.html">Platform HTTP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="plc4x-component.html">PLC4X</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="pgevent-component.html">PostgreSQL Event</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="pg-replication-slot-component.html">PostgreSQL Replication Slot</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="pqc-component.html">PQC Algorithms</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="lpr-component.html">Printer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="properties-component.html">Properties</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="pubnub-component.html">PubNub</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="pulsar-component.html">Pulsar</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="quartz-component.html">Quartz</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="quickfix-component.html">QuickFix</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="reactive-streams-component.html">Reactive Streams</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ref-component.html">Ref</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="rest-component.html">REST</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="rest-api-component.html">REST API</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="rest-openapi-component.html">REST OpenApi</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="robotframework-component.html">Robot Framework</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="rocketmq-component.html">RocketMQ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="rss-component.html">RSS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="saga-component.html">Saga</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="salesforce-component.html">Salesforce</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="sap-netweaver-component.html">SAP NetWeaver</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="scheduler-component.html">Scheduler</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="schematron-component.html">Schematron</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="scp-component.html">SCP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="seda-component.html">SEDA</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="servicenow-component.html">ServiceNow</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="servlet-component.html">Servlet</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="sftp-component.html">SFTP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="shell-component.html">Shell</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="sjms-component.html">Simple JMS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="sjms2-component.html">Simple JMS2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="slack-component.html">Slack</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="smb-component.html">SMB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="smooks-component.html">Smooks</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="smpp-component.html">SMPP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="snmp-component.html">SNMP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="solr-component.html">Solr</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="splunk-component.html">Splunk</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="splunk-hec-component.html">Splunk HEC</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="spring-summary.html">Spring</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-batch-component.html">Spring Batch</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-event-component.html">Spring Event</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-jdbc-component.html">Spring JDBC</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-ldap-component.html">Spring LDAP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-rabbitmq-component.html">Spring RabbitMQ</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-redis-component.html">Spring Redis</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="spring-ws-component.html">Spring WebService</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="sql-component.html">SQL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="sql-stored-component.html">SQL Stored Procedure</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ssh-component.html">SSH</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="stax-component.html">StAX</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="stitch-component.html">Stitch</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="stream-component.html">Stream</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="string-template-component.html">String Template</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="stripe-component.html">Stripe</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="stub-component.html">Stub</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="tahu-summary.html">Tahu</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="tahu-edge-component.html">Tahu Edge Node / Device</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="tahu-host-component.html">Tahu Host Application</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="telegram-component.html">Telegram</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="thrift-component.html">Thrift</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="thymeleaf-component.html">Thymeleaf</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="tika-component.html">Tika</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="timer-component.html">Timer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="twilio-component.html">Twilio</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="twitter-directmessage-component.html">Twitter Direct Message</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="twitter-search-component.html">Twitter Search</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="twitter-timeline-component.html">Twitter Timeline</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="undertow-component.html">Undertow</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="validator-component.html">Validator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="velocity-component.html">Velocity</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="vertx-component.html">Vert.x</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="vertx-http-component.html">Vert.x HTTP Client</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="vertx-websocket-component.html">Vert.x WebSocket</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="wasm-component.html">Wasm</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="weather-component.html">Weather</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="web3j-component.html">Web3j Ethereum Blockchain</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="webhook-component.html">Webhook</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="whatsapp-component.html">WhatsApp</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="wordpress-component.html">WordPress</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="workday-component.html">Workday</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xchange-component.html">XChange</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xj-component.html">XJ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xmlsecurity-sign-component.html">XML Security Sign</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xmlsecurity-verify-component.html">XML Security Verify</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xmpp-component.html">XMPP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xquery-component.html">XQuery</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xslt-component.html">XSLT</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xslt-saxon-component.html">XSLT Saxon</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="zeebe-component.html">Zeebe</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="zendesk-component.html">Zendesk</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="zookeeper-component.html">ZooKeeper</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="zookeeper-master-component.html">ZooKeeper Master</a> </li> </ul> </li> </ul> </li> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="dataformats/index.html">Data Formats</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/asn1-dataformat.html">ASN.1 File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/avro-dataformat.html">Avro</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/avroJackson2-dataformat.html">Avro Jackson 2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/avroJackson3-dataformat.html">Avro Jackson 3</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/barcode-dataformat.html">Barcode</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/base64-dataformat.html">Base64</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/beanio-dataformat.html">BeanIO</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/bindy-dataformat.html">Bindy</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/cbor-dataformat.html">CBOR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/crypto-dataformat.html">Crypto (Java Cryptographic Extension)</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/csv-dataformat.html">CSV</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/dfdl-dataformat.html">DFDL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/fhirJson-dataformat.html">FHIR JSon</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/fhirXml-dataformat.html">FHIR XML</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/flatpack-dataformat.html">Flatpack</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/fory-dataformat.html">Fory</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/grok-dataformat.html">Grok</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/groovyJson-dataformat.html">Groovy JSon</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/groovyXml-dataformat.html">Groovy XML</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/gzipDeflater-dataformat.html">GZip Deflater</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/hl7-dataformat.html">HL7</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/ical-dataformat.html">iCal</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/iso8583-dataformat.html">ISO-8583</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/jacksonXml2-dataformat.html">Jackson XML 2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/jacksonXml3-dataformat.html">Jackson XML 3</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/jaxb-dataformat.html">JAXB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/fastjson-dataformat.html">JSON Fastjson</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/gson-dataformat.html">JSON Gson</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/jackson2-dataformat.html">JSON Jackson 2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/jackson3-dataformat.html">JSON Jackson 3</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/jsonb-dataformat.html">JSON JSON-B</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/jsonApi-dataformat.html">JSonApi</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/lzf-dataformat.html">LZF Deflate Compression</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/mimeMultipart-dataformat.html">MIME Multipart</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/ocsf-dataformat.html">OCSF</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/parquetAvro-dataformat.html">Parquet File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/pgp-dataformat.html">PGP (Pretty Good Privacy Cryptographic)</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/pqc-dataformat.html">PQC (Post-Quantum Cryptography)</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/protobuf-dataformat.html">Protobuf</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/protobufJackson2-dataformat.html">Protobuf Jackson 2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/protobufJackson3-dataformat.html">Protobuf Jackson 3</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/rss-dataformat.html">RSS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/smooks-dataformat.html">Smooks</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/soap-dataformat.html">SOAP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/swiftMt-dataformat.html">SWIFT MT</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/swiftMx-dataformat.html">SWIFT MX</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/syslog-dataformat.html">Syslog</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/tarFile-dataformat.html">Tar File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/thrift-dataformat.html">Thrift</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/univocityCsv-dataformat.html">uniVocity CSV</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/univocityFixed-dataformat.html">uniVocity Fixed Length</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/univocityTsv-dataformat.html">uniVocity TSV</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/xmlSecurity-dataformat.html">XML Security</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/snakeYaml-dataformat.html">YAML SnakeYAML</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/zipDeflater-dataformat.html">Zip Deflater</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="dataformats/zipFile-dataformat.html">Zip File</a> </li> </ul> </li> </ul> </li> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="languages/index.html">Languages</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/bean-language.html">Bean Method</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/constant-language.html">Constant</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/csimple-language.html">CSimple</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/datasonnet-language.html">DataSonnet</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/exchangeProperty-language.html">ExchangeProperty</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/file-language.html">File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/groovy-language.html">Groovy</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/header-language.html">Header</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/hl7terser-language.html">HL7 Terser</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/jactl-language.html">Jactl</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/java-language.html">Java</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/js-language.html">JavaScript</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/joor-language.html">jOOR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/jq-language.html">JQ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/jsonpath-language.html">JSONPath</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/mvel-language.html">MVEL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/ognl-language.html">OGNL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/python-language.html">Python</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/ref-language.html">Ref</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-language.html">Simple</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-advanced.html">Simple - Advanced Features</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-functions.html">Simple - Built-in Functions</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-operators.html">Simple - Built-in Operators</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-ognl.html">Simple - OGNL Expressions</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/spel-language.html">SpEL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/tokenize-language.html">Tokenize</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/variable-language.html">Variable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/wasm-language.html">Wasm</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/xtokenize-language.html">XML Tokenize</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/xpath-language.html">XPath</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/xquery-language.html">XQuery</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-advanced.html">Simple - Advanced Features</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-functions.html">Simple - Built-in Functions</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-ognl.html">Simple - OGNL Expressions</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-operators.html">Simple - Built-in Operators</a> </li> </ul> </li> </ul> </li> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="others/index.html">Miscellaneous Components</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/a2a-consumer.html">A2A - Consumer Guide</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/a2a-producer.html">A2A - Producer Guide</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/attachments.html">Attachments</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/aws-bedrock-examples.html">AWS Bedrock - Examples</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/aws-bedrock-models.html">AWS Bedrock - Supported Models</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/aws2-s3-consumer-examples.html">AWS S3 - Consumer Examples</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/aws2-s3-producer-operations.html">AWS S3 - Producer Operations</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="others/aws2-s3-streaming.html">AWS S3 - Streaming Upload</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="others/azure-schema-registry.html">Azure Schema Registry</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/azure-storage-blob-consumer.html">Azure Storage Blob - Consumer Examples</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/azure-storage-blob-operations.html">Azure Storage Blob - Producer Operations</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/camel-yaml-dsl-validator-maven-plugin.html">Camel YAML DSL Validator Maven Plugin</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/cli-connector.html">CLI Connector</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/cli-debug.html">CLI Debug</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/cloudevents.html">Cloudevents</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/csimple-joor.html">CSimple jOOR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/cxf-transport.html">CXF Transport</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/debug.html">Debug</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/diagram.html">Diagram</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/docling-async-processing.html">Docling - Asynchronous Processing</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/docling-batch-processing.html">Docling - Batch Processing</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/docling-serve.html">Docling - Using Docling-Serve API</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="others/dsl.html">DSL</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="others/dsl-modeline.html">DSL Modeline</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="others/java-joor-dsl.html">Java DSL (runtime compiled)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="others/java-xml-jaxb-dsl.html">Jaxb XML Dsl</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="others/kamelet-main.html">Kamelet Main</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="others/kamelet-main-support.html">Kamelet Main Support</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="others/java-xml-io-dsl.html">XML Io Dsl</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="others/yaml-dsl.html">YAML DSL</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/headersmap.html">Headersmap</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/ibm-watsonx-ai-examples.html">IBM watsonx.ai - Examples</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/jandex.html">Jandex</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/jasypt.html">Jasypt</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/jfr.html">JFR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/jsoup.html">Jsoup</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/jta.html">JTA</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/keycloak-consumer.html">Keycloak Consumer Operations</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/keycloak-producer.html">Keycloak Producer Operations</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/keycloak-security.html">Keycloak Security Policies</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/langchain4j-agent-guardrails.html">LangChain4j Agent - Input and Output Guardrails</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/langchain4j-agent-mcp.html">LangChain4j Agent - MCP Tools Integration</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/langchain4j-agent-multimodal.html">LangChain4j Agent - Multimodal Content Support</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/langchain4j-tokenizer.html">LangChain4j Tokenizer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/leveldb.html">LevelDB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/lra.html">LRA</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/mail-microsoft-oauth.html">Mail Microsoft Oauth</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/main.html">Main</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/mdc.html">MDC Logging</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/observation.html">Micrometer Observability</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/micrometer-observability.html">Micrometer Observability 2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/micrometer-prometheus.html">Micrometer Prometheus</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/microprofile-config.html">Microprofile Config</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/microprofile-fault-tolerance.html">Microprofile Fault Tolerance</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/microprofile-health.html">Microprofile Health</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/mina-sftp-authentication.html">MINA SFTP Authentication</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/mina-sftp-migration.html">MINA SFTP Migration from JSch</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/mina-sftp-security.html">MINA SFTP SSH Security</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/oauth.html">Oauth</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/observability-services.html">Observability Services</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/openai-providers.html">OpenAI - Compatible Providers</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/openai-operations.html">OpenAI - Embeddings and Audio Operations</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/openai-mcp.html">OpenAI - MCP Tool Calling</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/openapi-java.html">Openapi Java</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/openapi-validator.html">Openapi Validator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/opentelemetry.html">OpenTelemetry</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/opentelemetry2.html">Opentelemetry2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/platform-http-jolokia.html">Platform HTTP Jolokia</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/platform-http-main.html">Platform Http Main</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/platform-http-vertx.html">Platform Http Vertx</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/pqc-hybrid.html">PQC Hybrid Cryptography</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/pqc-key-lifecycle.html">PQC Key Lifecycle Management</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/reactive-executor-tomcat.html">Reactive Executor Tomcat</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/reactive-executor-vertx.html">Reactive Executor Vert.x</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/reactor.html">Reactor</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/redis.html">Redis</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/resilience4j.html">Resilience4j</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/resilience4j-micrometer.html">Resilience4j Micrometer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/resourceresolver-github.html">Resourceresolver Github</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/rxjava.html">RxJava</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/salesforce-bulk-api.html">Salesforce - Bulk API</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/salesforce-reports.html">Salesforce - Reports API</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/salesforce-rest-api.html">Salesforce - REST API</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/salesforce-streaming.html">Salesforce - Streaming and Pub/Sub</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/shiro.html">Shiro</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/spring-cloud-config.html">Spring Cloud Config</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/spring-main.html">Spring Main</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/spring-security.html">Spring Security</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/spring-xml.html">Spring XML</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/springdoc.html">Springdoc</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/telemetry.html">Telemetry</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/telemetry-dev.html">Telemetry Dev</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/test-junit5.html">Test JUnit5</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/test-junit6.html">Test JUnit6</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/test-main-junit5.html">Test Main JUnit5</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/test-main-junit6.html">Test Main JUnit6</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/test-spring-junit5.html">Test Spring JUnit5</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/test-spring-junit6.html">Test Spring JUnit6</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/threadpoolfactory-vertx.html">ThreadPoolFactory Vert.x</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/tracing.html">Tracing</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/undertow-spring-security.html">Undertow Spring Security</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="others/wal.html">Write Ahead Log Strategy for Resume API</a> </li> </ul> </li> </ul> </li> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <a class="nav-link" href="eips/enterprise-integration-patterns.html">Enterprise Integration Patterns</a> </li> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="eips/ai-patterns.html">AI Patterns</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/a2aSubTask-eip.html">A2A Sub Task</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/aggregate-eip.html">Aggregate</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/batchConfig-eip.html">BatchConfig</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/bean-eip.html">Bean</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/change-data-capture.html">Change Data Capture</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/channel-adapter.html">Channel Adapter</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/choice-eip.html">Choice</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/circuitBreaker-eip.html">Circuit Breaker</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/claimCheck-eip.html">Claim Check</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/competing-consumers.html">Competing Consumers</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/composed-message-processor.html">Composed Message Processor</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/content-enricher.html">Content Enricher</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/content-filter-eip.html">Content Filter</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/convertBodyTo-eip.html">Convert Body To</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/convertHeaderTo-eip.html">Convert Header To</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/convertVariableTo-eip.html">Convert Variable To</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/correlation-identifier.html">Correlation Identifier</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/customLoadBalancer-eip.html">Custom Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/dead-letter-channel.html">Dead Letter Channel</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/delay-eip.html">Delay</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/doTry-eip.html">Do Try</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/durable-subscriber.html">Durable Subscriber</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/dynamicRouter-eip.html">Dynamic Router</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/enrich-eip.html">Enrich</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/eventDrivenConsumer-eip.html">Event Driven Consumer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/event-message.html">Event Message</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/failoverLoadBalancer-eip.html">Failover Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/faultToleranceConfiguration-eip.html">Fault Tolerance Configuration</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/fault-tolerance-eip.html">Fault Tolerance EIP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/filter-eip.html">Filter</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/from-eip.html">From</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/guaranteed-delivery.html">Guaranteed Delivery</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/idempotentConsumer-eip.html">Idempotent Consumer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/intercept.html">Intercept</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/kamelet-eip.html">Kamelet</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/loadBalance-eip.html">Load Balance</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/log-eip.html">Logger</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/loop-eip.html">Loop</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/marshal-eip.html">Marshal</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message.html">Message</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message-broker.html">Message Broker</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message-bus.html">Message Bus</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message-channel.html">Message Channel</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message-dispatcher.html">Message Dispatcher</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message-endpoint.html">Message Endpoint</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message-expiration.html">Message Expiration</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message-history.html">Message History</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message-router.html">Message Router</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/message-translator.html">Message Translator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/messaging-bridge.html">Messaging Bridge</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/messaging-gateway.html">Messaging Gateway</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/messaging-mapper.html">Messaging Mapper</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/multicast-eip.html">Multicast</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/normalizer.html">Normalizer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/onFallback-eip.html">On Fallback</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/pausable-eip.html">Pausable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/pipeline-eip.html">Pipeline</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/point-to-point-channel.html">Point to Point Channel</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/poll-eip.html">Poll</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/pollEnrich-eip.html">Poll Enrich</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/polling-consumer.html">Polling Consumer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/process-eip.html">Process</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/process-manager.html">Process Manager</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/publish-subscribe-channel.html">Publish Subscribe Channel</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/randomLoadBalancer-eip.html">Random Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/recipientList-eip.html">Recipient List</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/removeHeader-eip.html">Remove Header</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/removeHeaders-eip.html">Remove Headers</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/removeProperties-eip.html">Remove Properties</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/removeProperty-eip.html">Remove Property</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/removeVariable-eip.html">Remove Variable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/requestReply-eip.html">Request Reply</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/resequence-eip.html">Resequence</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/resilience4jConfiguration-eip.html">Resilience4j Configuration</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/resilience4j-eip.html">Resilience4j EIP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/resumable-eip.html">Resumable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/resume-strategies.html">Resume Strategies</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/return-address.html">Return Address</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/rollback-eip.html">Rollback</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/roundRobinLoadBalancer-eip.html">Round Robin Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/routingSlip-eip.html">Routing Slip</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/saga-eip.html">Saga</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/sample-eip.html">Sample</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/scatter-gather.html">Scatter-Gather</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/script-eip.html">Script</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/selective-consumer.html">Selective Consumer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/service-activator.html">Service Activator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/setBody-eip.html">Set Body</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/setHeader-eip.html">Set Header</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/setHeaders-eip.html">Set Headers</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/setProperty-eip.html">Set Property</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/setVariable-eip.html">Set Variable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/setVariables-eip.html">Set Variables</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/sort-eip.html">Sort</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/tokenizer-eip.html">Specialized tokenizer for AI applications</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/split-eip.html">Split</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/step-eip.html">Step</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/stickyLoadBalancer-eip.html">Sticky Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/stop-eip.html">Stop</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/throwException-eip.html">Stop</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/streamConfig-eip.html">StreamConfig</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/threads-eip.html">Threads</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/throttle-eip.html">Throttle</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/to-eip.html">To</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/toD-eip.html">To D</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/topicLoadBalancer-eip.html">Topic Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/transactional-client.html">Transactional Client</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/transform-eip.html">Transform</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/transformDataType-eip.html">Transform Data Type</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/unmarshal-eip.html">Unmarshal</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/validate-eip.html">Validate</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/weightedLoadBalancer-eip.html">Weighted Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="eips/wireTap-eip.html">Wire Tap</a> </li> </ul> </li> </ul> </li> </ul> </nav> </div> <div class="nav-panel-explore" data-panel="explore"> <div class="context"> <span class="title">Camel Components</span> <span class="version">Next (Pre-release)</span> </div> <ul class="components"> <li class="component"> <span class="title"> <a href="../../manual/index.html">User manual</a> </span></li> <li class="component"> <span class="title"> <a href="../../camel-core/index.html">Camel Core</a> </span></li> <li class="component is-current"><span class="title">Camel Components</span> <ul class="versions"> <li class="version is-current"> <a href="index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../4.18.x/index.html">4.18.x (LTS)</a> </li> <li class="version"> <a href="../4.14.x/index.html">4.14.x (LTS)</a> </li> </ul></li> <li class="component"><span class="title">Camel Spring Boot</span> <ul class="versions"> <li class="version"> <a href="../../camel-spring-boot/next/index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../camel-spring-boot/4.18.x/index.html">4.18.x (LTS)</a> </li> <li class="version"> <a href="../../camel-spring-boot/4.14.x/index.html">4.14.x (LTS)</a> </li> </ul></li> <li class="component"><span class="title">Camel Quarkus</span> <ul class="versions"> <li class="version"> <a href="../../camel-quarkus/next/index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../camel-quarkus/3.33.x/index.html">3.33.x</a> </li> <li class="version"> <a href="../../camel-quarkus/3.27.x/index.html">3.27.x</a> </li> </ul></li> <li class="component"><span class="title">Kamelet Catalog</span> <ul class="versions"> <li class="version"> <a href="../../camel-kamelets/next/index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../camel-kamelets/4.18.x/index.html">4.18.x (LTS)</a> </li> <li class="version"> <a href="../../camel-kamelets/4.14.x/index.html">4.14.x (LTS)</a> </li> </ul></li> <li class="component"><span class="title">Camel K</span> <ul class="versions"> <li class="version"> <a href="../../camel-k/next/index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../camel-k/2.10.x/index.html">2.10.x</a> </li> <li class="version"> <a href="../../camel-k/2.9.x/index.html">2.9.x (LTS)</a> </li> </ul></li> <li class="component"><span class="title">Camel Kafka Connector</span> <ul class="versions"> <li class="version"> <a href="../../camel-kafka-connector/next/index.html">Next (Pre-release)</a> </li> </ul></li> <li class="component"><span class="title">Camel Karaf</span> <ul class="versions"> <li class="version"> <a href="../../camel-karaf/4.9.x/index.html">4.9.x</a> </li> </ul></li> </ul> </div> </div> </aside> </div> <main class="article"> <nav class="toolbar" aria-label="Toolbar"> <button class="nav-toggle" type="button" aria-label="Toggle submenu"></button> <nav class="breadcrumbs" aria-label="breadcrumbs"> <ul> <li><a href="index.html">Camel Components</a></li> <li><a href="index.html">Components</a></li> <li><a href="http-component.html">HTTP</a></li> </ul> </nav> <div class="page-versions"> <button class="version-menu-toggle" type="button" title="Show other versions of page">Next (Pre-release)</button> <div class="version-menu"> <a class="version is-current" href="http-component.html">Next (Pre-release)</a> <a class="version" href="../4.18.x/http-component.html">4.18.x (LTS)</a> <a class="version" href="../4.14.x/http-component.html">4.14.x (LTS)</a> </div> </div> <div class="edit-this-page"><a href="https://github.com/apache/camel/edit/main/docs/components/modules/ROOT/pages/http-component.adoc">Edit this Page</a></div> </nav> <div class="content"> <article class="doc"> <h1 class="page">HTTP</h1> <div id="preamble"> <div class="sectionbody"> <div class="paragraph"> <p><strong>Since Camel 2.3</strong></p> </div> <div class="paragraph"> <p><strong>Only producer is supported</strong></p> </div> <div class="paragraph"> <p>The HTTP component provides HTTP-based endpoints for calling external HTTP resources (as a client to call external servers using HTTP).</p> </div> <div class="paragraph"> <p>Maven users will need to add the following dependency to their <code>pom.xml</code> for this component:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><dependency> |
| <groupId>org.apache.camel</groupId> |
| <artifactId>camel-http</artifactId> |
| <version>x.x.x</version> |
| <!-- use the same version as your Camel core version --> |
| </dependency></code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_uri_format"><a class="anchor" href="#_uri_format"></a>URI format</h2> <div class="sectionbody"> <div class="listingblock"> <div class="content"> <pre>http:hostname[:port][/resourceUri][?options]</pre> </div> </div> <div class="paragraph"> <p>Will by default use port 80 for HTTP and 443 for HTTPS.</p> </div> </div> </div> <div class="sect1"> <h2 id="_configuring_options"><a class="anchor" href="#_configuring_options"></a>Configuring Options</h2> <div class="sectionbody"> <div class="paragraph"> <p>Camel components are configured on two separate levels:</p> </div> <div class="ulist"> <ul> <li> <p>component level</p> </li> <li> <p>endpoint level</p> </li> </ul> </div> <div class="sect2"> <h3 id="_configuring_component_options"><a class="anchor" href="#_configuring_component_options"></a>Configuring Component Options</h3> <div class="paragraph"> <p>At the component level, you set general and shared configurations that are, then, inherited by the endpoints. It is the highest configuration level.</p> </div> <div class="paragraph"> <p>For example, a component may have security settings, credentials for authentication, urls for network connection and so forth.</p> </div> <div class="paragraph"> <p>Some components only have a few options, and others may have many. Because components typically have pre-configured defaults that are commonly used, then you may often only need to configure a few options on a component; or none at all.</p> </div> <div class="paragraph"> <p>You can configure components using:</p> </div> <div class="ulist"> <ul> <li> <p>the <a href="../../manual/component-dsl.html" class="xref page">Component DSL</a>.</p> </li> <li> <p>in a configuration file (<code>application.properties</code>, <code>*.yaml</code> files, etc).</p> </li> <li> <p>directly in the Java code.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_configuring_endpoint_options"><a class="anchor" href="#_configuring_endpoint_options"></a>Configuring Endpoint Options</h3> <div class="paragraph"> <p>You usually spend more time setting up endpoints because they have many options. These options help you customize what you want the endpoint to do. The options are also categorized into whether the endpoint is used as a consumer (<em>from</em>), as a producer (<em>to</em>), or both.</p> </div> <div class="paragraph"> <p>Configuring endpoints is most often done directly in the endpoint URI as <em>path</em> and <em>query</em> parameters. You can also use the <a href="../../manual/Endpoint-dsl.html" class="xref page">Endpoint DSL</a> and <a href="../../manual/dataformat-dsl.html" class="xref page">DataFormat DSL</a> as a <em>type safe</em> way of configuring endpoints and data formats in Java.</p> </div> <div class="paragraph"> <p>A good practice when configuring options is to use <a href="../../manual/using-propertyplaceholder.html" class="xref page">Property Placeholders</a>.</p> </div> <div class="paragraph"> <p>Property placeholders provide a few benefits:</p> </div> <div class="ulist"> <ul> <li> <p>They help prevent using hardcoded urls, port numbers, sensitive information, and other settings.</p> </li> <li> <p>They allow externalizing the configuration from the code.</p> </li> <li> <p>They help the code to become more flexible and reusable.</p> </li> </ul> </div> <div class="paragraph"> <p>The following two sections list all the options, firstly for the component followed by the endpoint.</p> </div> </div> </div> </div> <div class="sect1"> <h2 id="_component_options"><a class="anchor" href="#_component_options"></a>Component Options</h2> <div class="sectionbody"> <div class="paragraph"> <p>The HTTP component supports the following options which are listed below.</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <colgroup> <col> <col> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Name</th> <th class="tableblock halign-left valign-top">Description</th> <th class="tableblock halign-center valign-top">Default</th> <th class="tableblock halign-left valign-top">Type</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_lazyStartProducer"></a> <a href="#_component_option_lazyStartProducer" class="anchor"></a><strong>lazyStartProducer</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_logHttpActivity"></a> <a href="#_component_option_logHttpActivity" class="anchor"></a><strong>logHttpActivity</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To enable logging HTTP request and response. You can use a custom LoggingHttpActivityListener as httpActivityListener to control logging options.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_skipControlHeaders"></a> <a href="#_component_option_skipControlHeaders" class="anchor"></a><strong>skipControlHeaders</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to skip Camel control headers (CamelHttp…​ headers) to influence this endpoint. Control headers from previous HTTP components can influence how this Camel component behaves such as CamelHttpPath, CamelHttpQuery, etc.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_skipRequestHeaders"></a> <a href="#_component_option_skipRequestHeaders" class="anchor"></a><strong>skipRequestHeaders</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to skip mapping all the Camel headers as HTTP request headers. This is useful when you know that calling the HTTP service should not include any custom headers.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_skipResponseHeaders"></a> <a href="#_component_option_skipResponseHeaders" class="anchor"></a><strong>skipResponseHeaders</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to skip mapping all the HTTP response headers to Camel headers.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_contentTypeCharsetEnabled"></a> <a href="#_component_option_contentTypeCharsetEnabled" class="anchor"></a><strong>contentTypeCharsetEnabled</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether the Content-Type header should automatic include charset for string based content.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_cookieStore"></a> <a href="#_component_option_cookieStore" class="anchor"></a><strong>cookieStore</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom org.apache.hc.client5.http.cookie.CookieStore. By default the org.apache.hc.client5.http.cookie.BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is forced to be a noop cookie store as cookie shouldn’t be stored as we are just bridging (eg acting as a proxy).</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">CookieStore</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_copyHeaders"></a> <a href="#_component_option_copyHeaders" class="anchor"></a><strong>copyHeaders</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>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> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_followRedirects"></a> <a href="#_component_option_followRedirects" class="anchor"></a><strong>followRedirects</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to the HTTP request should follow redirects. By default the HTTP request does not follow redirects.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_httpActivityListener"></a> <a href="#_component_option_httpActivityListener" class="anchor"></a><strong>httpActivityListener</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Autowired</strong> To use a custom activity listener.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpActivityListener</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_responsePayloadStreamingThreshold"></a> <a href="#_component_option_responsePayloadStreamingThreshold" class="anchor"></a><strong>responsePayloadStreamingThreshold</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>This threshold in bytes controls whether the response payload should be stored in memory as a byte array or be streaming based. Set this to -1 to always use streaming mode.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">8192</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_userAgent"></a> <a href="#_component_option_userAgent" class="anchor"></a><strong>userAgent</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To set a custom HTTP User-Agent request header.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_allowJavaSerializedObject"></a> <a href="#_component_option_allowJavaSerializedObject" class="anchor"></a><strong>allowJavaSerializedObject</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>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> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_authCachingDisabled"></a> <a href="#_component_option_authCachingDisabled" class="anchor"></a><strong>authCachingDisabled</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Disables authentication scheme caching.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_automaticRetriesDisabled"></a> <a href="#_component_option_automaticRetriesDisabled" class="anchor"></a><strong>automaticRetriesDisabled</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Disables automatic request recovery and re-execution. This is useful when a server responds with HTTP 429 (Too Many Requests) and includes a long Retry-After header, which would otherwise cause the client to wait (and appear to hang) before retrying.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_autowiredEnabled"></a> <a href="#_component_option_autowiredEnabled" class="anchor"></a><strong>autowiredEnabled</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_clientConnectionManager"></a> <a href="#_component_option_clientConnectionManager" class="anchor"></a><strong>clientConnectionManager</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom and shared HttpClientConnectionManager to manage connections. If this has been configured then this is always used for all endpoints created by this component.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpClientConnectionManager</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_connectionsPerRoute"></a> <a href="#_component_option_connectionsPerRoute" class="anchor"></a><strong>connectionsPerRoute</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The maximum number of connections per route.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">20</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_connectionStateDisabled"></a> <a href="#_component_option_connectionStateDisabled" class="anchor"></a><strong>connectionStateDisabled</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Disables connection state tracking.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_connectionTimeToLive"></a> <a href="#_component_option_connectionTimeToLive" class="anchor"></a><strong>connectionTimeToLive</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The time for connection to live, the time unit is millisecond, the default value is always keepAlive.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">long</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_contentCompressionDisabled"></a> <a href="#_component_option_contentCompressionDisabled" class="anchor"></a><strong>contentCompressionDisabled</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Disables automatic content decompression.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_cookieManagementDisabled"></a> <a href="#_component_option_cookieManagementDisabled" class="anchor"></a><strong>cookieManagementDisabled</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Disables state (cookie) management.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_defaultUserAgentDisabled"></a> <a href="#_component_option_defaultUserAgentDisabled" class="anchor"></a><strong>defaultUserAgentDisabled</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Disables the default user agent set by this builder if none has been provided by the user.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_httpBinding"></a> <a href="#_component_option_httpBinding" class="anchor"></a><strong>httpBinding</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom HttpBinding to control the mapping between Camel message and HttpClient.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpBinding</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_httpClientConfigurer"></a> <a href="#_component_option_httpClientConfigurer" class="anchor"></a><strong>httpClientConfigurer</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use the custom HttpClientConfigurer to perform configuration of the HttpClient that will be used.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpClientConfigurer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_httpConfiguration"></a> <a href="#_component_option_httpConfiguration" class="anchor"></a><strong>httpConfiguration</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use the shared HttpConfiguration as base configuration.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpConfiguration</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_httpContext"></a> <a href="#_component_option_httpContext" class="anchor"></a><strong>httpContext</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom org.apache.hc.core5.http.protocol.HttpContext when executing requests.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpContext</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_maxTotalConnections"></a> <a href="#_component_option_maxTotalConnections" class="anchor"></a><strong>maxTotalConnections</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The maximum number of connections.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">200</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_redirectHandlingDisabled"></a> <a href="#_component_option_redirectHandlingDisabled" class="anchor"></a><strong>redirectHandlingDisabled</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Disables automatic redirect handling.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_useSystemProperties"></a> <a href="#_component_option_useSystemProperties" class="anchor"></a><strong>useSystemProperties</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use System Properties as fallback for configuration for configuring HTTP Client.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_headerFilterStrategy"></a> <a href="#_component_option_headerFilterStrategy" class="anchor"></a><strong>headerFilterStrategy</strong> (filter)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HeaderFilterStrategy</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_nonProxyHosts"></a> <a href="#_component_option_nonProxyHosts" class="anchor"></a><strong>nonProxyHosts</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Comma-separated list of hosts that should bypass the proxy. Supports wildcards, e.g., localhost,.example.com,192.168..</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyAuthDomain"></a> <a href="#_component_option_proxyAuthDomain" class="anchor"></a><strong>proxyAuthDomain</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy authentication domain to use with NTLM.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyAuthHost"></a> <a href="#_component_option_proxyAuthHost" class="anchor"></a><strong>proxyAuthHost</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Deprecated</strong> Proxy server host.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyAuthMethod"></a> <a href="#_component_option_proxyAuthMethod" class="anchor"></a><strong>proxyAuthMethod</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy authentication method to use (NTLM is deprecated).</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>Basic</p> </li> <li> <p>Digest</p> </li> <li> <p>NTLM</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyAuthNtHost"></a> <a href="#_component_option_proxyAuthNtHost" class="anchor"></a><strong>proxyAuthNtHost</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy authentication domain (workstation name) to use with NTLM (NTLM is deprecated).</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyAuthPassword"></a> <a href="#_component_option_proxyAuthPassword" class="anchor"></a><strong>proxyAuthPassword</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server password.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyAuthPort"></a> <a href="#_component_option_proxyAuthPort" class="anchor"></a><strong>proxyAuthPort</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Deprecated</strong> Proxy server port.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyAuthScheme"></a> <a href="#_component_option_proxyAuthScheme" class="anchor"></a><strong>proxyAuthScheme</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server authentication protocol scheme to use.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>http</p> </li> <li> <p>https</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyAuthUsername"></a> <a href="#_component_option_proxyAuthUsername" class="anchor"></a><strong>proxyAuthUsername</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server username.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyHost"></a> <a href="#_component_option_proxyHost" class="anchor"></a><strong>proxyHost</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server host.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_proxyPort"></a> <a href="#_component_option_proxyPort" class="anchor"></a><strong>proxyPort</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server port.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_deserializationFilter"></a> <a href="#_component_option_deserializationFilter" class="anchor"></a><strong>deserializationFilter</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Sets an ObjectInputFilter pattern (jdk.serialFilter syntax) applied when deserializing Java objects from requests or responses with Content-Type application/x-java-serialized-object (only used when allowJavaSerializedObject or transferException is enabled). When not set, the JVM-wide jdk.serialFilter is used if present; otherwise a conservative default filter denying java.net. and otherwise allowing java., javax. and org.apache.camel. packages is applied.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_hostnameVerificationPolicy"></a> <a href="#_component_option_hostnameVerificationPolicy" class="anchor"></a><strong>hostnameVerificationPolicy</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Controls how hostname verification is performed during the TLS handshake. CLIENT (default) delegates entirely to the configured x509HostnameVerifier, preserving the behaviour of httpclient 5.5 and earlier a NoopHostnameVerifier will disable verification. BUILTIN uses the JDK SSLParameters hostname check only, ignoring the configured verifier. BOTH runs the JDK built-in check first and then the configured verifier; a NoopHostnameVerifier cannot bypass the built-in check under BUILTIN or BOTH. Prefer BOTH when no custom verifier semantics are needed for stronger out-of-the-box security.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>CLIENT</p> </li> <li> <p>BUILTIN</p> </li> <li> <p>BOTH</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">CLIENT</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HostnameVerificationPolicy</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_sslContextParameters"></a> <a href="#_component_option_sslContextParameters" class="anchor"></a><strong>sslContextParameters</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.support.jsse.SSLContextParameters 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.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">SSLContextParameters</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_useGlobalSslContextParameters"></a> <a href="#_component_option_useGlobalSslContextParameters" class="anchor"></a><strong>useGlobalSslContextParameters</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Enable usage of global SSL context parameters.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_x509HostnameVerifier"></a> <a href="#_component_option_x509HostnameVerifier" class="anchor"></a><strong>x509HostnameVerifier</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HostnameVerifier</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_connectionRequestTimeout"></a> <a href="#_component_option_connectionRequestTimeout" class="anchor"></a><strong>connectionRequestTimeout</strong> (timeout)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Returns the connection lease request timeout (in millis) used when requesting a connection from the connection manager. A timeout value of zero is interpreted as a disabled timeout.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">180000</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">long</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_connectTimeout"></a> <a href="#_component_option_connectTimeout" class="anchor"></a><strong>connectTimeout</strong> (timeout)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Determines the timeout (in millis) until a new connection is fully established. A timeout value of zero is interpreted as an infinite timeout.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">180000</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">long</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_responseTimeout"></a> <a href="#_component_option_responseTimeout" class="anchor"></a><strong>responseTimeout</strong> (timeout)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Determines the timeout (in millis) until arrival of a response from the opposite endpoint. A timeout value of zero is interpreted as an infinite timeout. Please note that response timeout may be unsupported by HTTP transports with message multiplexing.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">long</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_soTimeout"></a> <a href="#_component_option_soTimeout" class="anchor"></a><strong>soTimeout</strong> (timeout)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Determines the default socket timeout (in millis) value for blocking I/O operations.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">180000</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">long</p></td> </tr> </tbody> </table></div> </div> </div> <div class="sect1"> <h2 id="_endpoint_options"><a class="anchor" href="#_endpoint_options"></a>Endpoint Options</h2> <div class="sectionbody"> <div class="paragraph"> <p>The HTTP endpoint is configured using URI syntax:</p> </div> <div class="listingblock"> <div class="content"> <pre>http://httpUri</pre> </div> </div> <div class="paragraph"> <p>With the following <em>path</em> and <em>query</em> parameters:</p> </div> <div class="sect2"> <h3 id="_path_parameters"><a class="anchor" href="#_path_parameters"></a>Path Parameters</h3> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <colgroup> <col> <col> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Name</th> <th class="tableblock halign-left valign-top">Description</th> <th class="tableblock halign-center valign-top">Default</th> <th class="tableblock halign-left valign-top">Type</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_path_option_httpUri"></a> <a href="#_endpoint_path_option_httpUri" class="anchor"></a><strong>httpUri</strong> (common)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Required</strong> The url of the HTTP endpoint to call.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">URI</p></td> </tr> </tbody> </table></div> </div> <div class="sect2"> <h3 id="_query_parameters"><a class="anchor" href="#_query_parameters"></a>Query Parameters</h3> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <colgroup> <col> <col> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Name</th> <th class="tableblock halign-left valign-top">Description</th> <th class="tableblock halign-center valign-top">Default</th> <th class="tableblock halign-left valign-top">Type</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_disableStreamCache"></a> <a href="#_endpoint_query_option_disableStreamCache" class="anchor"></a><strong>disableStreamCache</strong> (common)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Determines whether or not the raw input stream is cached or not. The Camel consumer (camel-servlet, camel-jetty etc.) will by default cache the input stream to support reading it multiple times to ensure it Camel can retrieve all data from the stream. However you can set this option to true when you for example need to access the raw stream, such as streaming it directly to a file or other persistent store. DefaultHttpBinding will copy the request input stream into a stream cache and put it into message body if this option is false to support reading the stream multiple times. If you use Servlet to bridge/proxy an endpoint then consider enabling this option to improve performance, in case you do not need to read the message payload multiple times. The producer (camel-http) will by default cache the response body stream. If setting this option to true, then the producers will not cache the response body stream but use the response stream as-is (the stream can only be read once) as the message body.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_headerFilterStrategy"></a> <a href="#_endpoint_query_option_headerFilterStrategy" class="anchor"></a><strong>headerFilterStrategy</strong> (common (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom HeaderFilterStrategy to filter header to and from Camel message.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HeaderFilterStrategy</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_bridgeEndpoint"></a> <a href="#_endpoint_query_option_bridgeEndpoint" class="anchor"></a><strong>bridgeEndpoint</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>If the option is true, HttpProducer will ignore the Exchange.HTTP_URI header, and use the endpoint’s URI for request. You may also set the option throwExceptionOnFailure to be false to let the HttpProducer send all the fault response back.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_connectionClose"></a> <a href="#_endpoint_query_option_connectionClose" class="anchor"></a><strong>connectionClose</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Specifies whether a Connection Close header must be added to HTTP Request. By default connectionClose is false.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_httpMethod"></a> <a href="#_endpoint_query_option_httpMethod" class="anchor"></a><strong>httpMethod</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Configure the HTTP method to use. The HttpMethod header cannot override this option if set.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>GET</p> </li> <li> <p>POST</p> </li> <li> <p>PUT</p> </li> <li> <p>DELETE</p> </li> <li> <p>HEAD</p> </li> <li> <p>OPTIONS</p> </li> <li> <p>TRACE</p> </li> <li> <p>PATCH</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpMethods</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_logHttpActivity"></a> <a href="#_endpoint_query_option_logHttpActivity" class="anchor"></a><strong>logHttpActivity</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To enable logging HTTP request and response. You can use a custom LoggingHttpActivityListener as httpActivityListener to control logging options.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_multipartUpload"></a> <a href="#_endpoint_query_option_multipartUpload" class="anchor"></a><strong>multipartUpload</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to force using multipart/form-data for easy file uploads. This is only to be used for uploading the message body as a single entity form-data. For uploading multiple entries then use org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder to build the form.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_multipartUploadName"></a> <a href="#_endpoint_query_option_multipartUploadName" class="anchor"></a><strong>multipartUploadName</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The name of the multipart/form-data when multipartUpload is enabled.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">data</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_skipControlHeaders"></a> <a href="#_endpoint_query_option_skipControlHeaders" class="anchor"></a><strong>skipControlHeaders</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to skip Camel control headers (CamelHttp…​ headers) to influence this endpoint. Control headers from previous HTTP components can influence how this Camel component behaves such as CamelHttpPath, CamelHttpQuery, etc.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_skipRequestHeaders"></a> <a href="#_endpoint_query_option_skipRequestHeaders" class="anchor"></a><strong>skipRequestHeaders</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to skip mapping the Camel headers as HTTP request headers. This is useful when you know that calling the HTTP service should not include any custom headers.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_skipResponseHeaders"></a> <a href="#_endpoint_query_option_skipResponseHeaders" class="anchor"></a><strong>skipResponseHeaders</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to skip mapping all the HTTP response headers to Camel headers.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_throwExceptionOnFailure"></a> <a href="#_endpoint_query_option_throwExceptionOnFailure" class="anchor"></a><strong>throwExceptionOnFailure</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Option to disable throwing the HttpOperationFailedException in case of failed responses from the remote server. This allows you to get all responses regardless of the HTTP status code.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_clearExpiredCookies"></a> <a href="#_endpoint_query_option_clearExpiredCookies" class="anchor"></a><strong>clearExpiredCookies</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>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. If the component has disabled cookie management then this option is disabled too.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_contentTypeCharsetEnabled"></a> <a href="#_endpoint_query_option_contentTypeCharsetEnabled" class="anchor"></a><strong>contentTypeCharsetEnabled</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether the Content-Type header should automatic include charset for string based content.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_cookieHandler"></a> <a href="#_endpoint_query_option_cookieHandler" class="anchor"></a><strong>cookieHandler</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Configure a cookie handler to maintain a HTTP session.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">CookieHandler</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_cookieStore"></a> <a href="#_endpoint_query_option_cookieStore" class="anchor"></a><strong>cookieStore</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom CookieStore. By default the BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is forced to be a noop cookie store as cookie shouldn’t be stored as we are just bridging (eg acting as a proxy). If a cookieHandler is set then the cookie store is also forced to be a noop cookie store as cookie handling is then performed by the cookieHandler.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">CookieStore</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_copyHeaders"></a> <a href="#_endpoint_query_option_copyHeaders" class="anchor"></a><strong>copyHeaders</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>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> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_customHostHeader"></a> <a href="#_endpoint_query_option_customHostHeader" class="anchor"></a><strong>customHostHeader</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use custom host header for producer. When not set in query will be ignored. When set will override host header derived from url.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_deleteWithBody"></a> <a href="#_endpoint_query_option_deleteWithBody" class="anchor"></a><strong>deleteWithBody</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether the HTTP DELETE should include the message body or not. By default HTTP DELETE do not include any HTTP body. However in some rare cases users may need to be able to include the message body.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_followRedirects"></a> <a href="#_endpoint_query_option_followRedirects" class="anchor"></a><strong>followRedirects</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to the HTTP request should follow redirects. By default the HTTP request does not follow redirects.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_getWithBody"></a> <a href="#_endpoint_query_option_getWithBody" class="anchor"></a><strong>getWithBody</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether the HTTP GET should include the message body or not. By default HTTP GET do not include any HTTP body. However in some rare cases users may need to be able to include the message body.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_httpActivityListener"></a> <a href="#_endpoint_query_option_httpActivityListener" class="anchor"></a><strong>httpActivityListener</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom activity listener.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpActivityListener</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_ignoreResponseBody"></a> <a href="#_endpoint_query_option_ignoreResponseBody" class="anchor"></a><strong>ignoreResponseBody</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>If this option is true, The http producer won’t read response body and cache the input stream.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_lazyStartProducer"></a> <a href="#_endpoint_query_option_lazyStartProducer" class="anchor"></a><strong>lazyStartProducer</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_okStatusCodeRange"></a> <a href="#_endpoint_query_option_okStatusCodeRange" class="anchor"></a><strong>okStatusCodeRange</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The status codes which are considered a success response. The values are inclusive. Multiple ranges can be defined, separated by comma, e.g. 200-204,209,301-304. Each range must be a single number or from-to with the dash included.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">200-299</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_preserveHostHeader"></a> <a href="#_endpoint_query_option_preserveHostHeader" class="anchor"></a><strong>preserveHostHeader</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>If the option is true, HttpProducer will set the Host header to the value contained in the current exchange Host header, useful in reverse proxy applications where you want the Host header received by the downstream server to reflect the URL called by the upstream client, this allows applications which use the Host header to generate accurate URL’s for a proxied service.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_userAgent"></a> <a href="#_endpoint_query_option_userAgent" class="anchor"></a><strong>userAgent</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To set a custom HTTP User-Agent request header.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_clientBuilder"></a> <a href="#_endpoint_query_option_clientBuilder" class="anchor"></a><strong>clientBuilder</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Provide access to the http client request parameters used on new RequestConfig instances used by producers or consumers of this endpoint.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpClientBuilder</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_clientConnectionManager"></a> <a href="#_endpoint_query_option_clientConnectionManager" class="anchor"></a><strong>clientConnectionManager</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom HttpClientConnectionManager to manage connections.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpClientConnectionManager</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_connectionsPerRoute"></a> <a href="#_endpoint_query_option_connectionsPerRoute" class="anchor"></a><strong>connectionsPerRoute</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The maximum number of connections per route.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">20</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_httpClient"></a> <a href="#_endpoint_query_option_httpClient" class="anchor"></a><strong>httpClient</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Sets a custom HttpClient to be used by the producer.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpClient</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_httpClientConfigurer"></a> <a href="#_endpoint_query_option_httpClientConfigurer" class="anchor"></a><strong>httpClientConfigurer</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Register a custom configuration strategy for new HttpClient instances created by producers or consumers such as to configure authentication mechanisms etc.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpClientConfigurer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_httpClientOptions"></a> <a href="#_endpoint_query_option_httpClientOptions" class="anchor"></a><strong>httpClientOptions</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To configure the HttpClient using the key/values from the Map. This is a multi-value option with prefix: httpClient.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_httpConnectionOptions"></a> <a href="#_endpoint_query_option_httpConnectionOptions" class="anchor"></a><strong>httpConnectionOptions</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To configure the connection and the socket using the key/values from the Map. This is a multi-value option with prefix: httpConnection.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_httpContext"></a> <a href="#_endpoint_query_option_httpContext" class="anchor"></a><strong>httpContext</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom HttpContext instance.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpContext</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_maxTotalConnections"></a> <a href="#_endpoint_query_option_maxTotalConnections" class="anchor"></a><strong>maxTotalConnections</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The maximum number of connections.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">200</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_useSystemProperties"></a> <a href="#_endpoint_query_option_useSystemProperties" class="anchor"></a><strong>useSystemProperties</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use System Properties as fallback for configuration for configuring HTTP Client.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_nonProxyHosts"></a> <a href="#_endpoint_query_option_nonProxyHosts" class="anchor"></a><strong>nonProxyHosts</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Comma-separated list of hosts that should bypass the proxy. Supports wildcards, e.g., localhost,.example.com,192.168..</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyAuthDomain"></a> <a href="#_endpoint_query_option_proxyAuthDomain" class="anchor"></a><strong>proxyAuthDomain</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Deprecated</strong> Proxy authentication domain to use with NTLM.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyAuthHost"></a> <a href="#_endpoint_query_option_proxyAuthHost" class="anchor"></a><strong>proxyAuthHost</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Deprecated</strong> Proxy server host.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyAuthMethod"></a> <a href="#_endpoint_query_option_proxyAuthMethod" class="anchor"></a><strong>proxyAuthMethod</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy authentication method to use (NTLM is deprecated).</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>Basic</p> </li> <li> <p>Bearer</p> </li> <li> <p>NTLM</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyAuthNtHost"></a> <a href="#_endpoint_query_option_proxyAuthNtHost" class="anchor"></a><strong>proxyAuthNtHost</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Deprecated</strong> Proxy authentication domain (workstation name) to use with NTLM.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyAuthPassword"></a> <a href="#_endpoint_query_option_proxyAuthPassword" class="anchor"></a><strong>proxyAuthPassword</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server password.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyAuthPort"></a> <a href="#_endpoint_query_option_proxyAuthPort" class="anchor"></a><strong>proxyAuthPort</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Deprecated</strong> Proxy server port.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyAuthScheme"></a> <a href="#_endpoint_query_option_proxyAuthScheme" class="anchor"></a><strong>proxyAuthScheme</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server authentication protocol scheme to use.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>http</p> </li> <li> <p>https</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyAuthUsername"></a> <a href="#_endpoint_query_option_proxyAuthUsername" class="anchor"></a><strong>proxyAuthUsername</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server username.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyHost"></a> <a href="#_endpoint_query_option_proxyHost" class="anchor"></a><strong>proxyHost</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server host.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_proxyPort"></a> <a href="#_endpoint_query_option_proxyPort" class="anchor"></a><strong>proxyPort</strong> (proxy)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Proxy server port.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_authBearerToken"></a> <a href="#_endpoint_query_option_authBearerToken" class="anchor"></a><strong>authBearerToken</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Authentication bearer token.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_authDomain"></a> <a href="#_endpoint_query_option_authDomain" class="anchor"></a><strong>authDomain</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Deprecated</strong> Authentication domain to use with NTLM.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_authenticationPreemptive"></a> <a href="#_endpoint_query_option_authenticationPreemptive" class="anchor"></a><strong>authenticationPreemptive</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>If this option is true, camel-http sends preemptive basic authentication to the server.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_authHost"></a> <a href="#_endpoint_query_option_authHost" class="anchor"></a><strong>authHost</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Deprecated</strong> Authentication host to use with NTLM.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_authMethod"></a> <a href="#_endpoint_query_option_authMethod" class="anchor"></a><strong>authMethod</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Authentication methods allowed to use as a comma separated list of values Basic, Bearer, or NTLM. (NTLM is deprecated).</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>Basic</p> </li> <li> <p>Bearer</p> </li> <li> <p>NTLM</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_authPassword"></a> <a href="#_endpoint_query_option_authPassword" class="anchor"></a><strong>authPassword</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Authentication password.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_authUsername"></a> <a href="#_endpoint_query_option_authUsername" class="anchor"></a><strong>authUsername</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Authentication username.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_hostnameVerificationPolicy"></a> <a href="#_endpoint_query_option_hostnameVerificationPolicy" class="anchor"></a><strong>hostnameVerificationPolicy</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Controls how hostname verification is performed during the TLS handshake. CLIENT (default) delegates entirely to the configured x509HostnameVerifier, preserving the behaviour of httpclient 5.5 and earlier a NoopHostnameVerifier will disable verification. BUILTIN uses the JDK SSLParameters hostname check only, ignoring the configured verifier. BOTH runs the JDK built-in check first and then the configured verifier; a NoopHostnameVerifier cannot bypass the built-in check under BUILTIN or BOTH. Prefer BOTH when no custom verifier semantics are needed for stronger out-of-the-box security.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>CLIENT</p> </li> <li> <p>BUILTIN</p> </li> <li> <p>BOTH</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">CLIENT</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HostnameVerificationPolicy</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oauth2BodyAuthentication"></a> <a href="#_endpoint_query_option_oauth2BodyAuthentication" class="anchor"></a><strong>oauth2BodyAuthentication</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to use OAuth2 body authentication.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oauth2CachedTokensDefaultExpirySeconds"></a> <a href="#_endpoint_query_option_oauth2CachedTokensDefaultExpirySeconds" class="anchor"></a><strong>oauth2CachedTokensDefaultExpirySeconds</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">3600</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">long</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oauth2CachedTokensExpirationMarginSeconds"></a> <a href="#_endpoint_query_option_oauth2CachedTokensExpirationMarginSeconds" class="anchor"></a><strong>oauth2CachedTokensExpirationMarginSeconds</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">5</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">long</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oauth2CacheTokens"></a> <a href="#_endpoint_query_option_oauth2CacheTokens" class="anchor"></a><strong>oauth2CacheTokens</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to cache OAuth2 client tokens.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oauth2ClientId"></a> <a href="#_endpoint_query_option_oauth2ClientId" class="anchor"></a><strong>oauth2ClientId</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>OAuth2 client id.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oauth2ClientSecret"></a> <a href="#_endpoint_query_option_oauth2ClientSecret" class="anchor"></a><strong>oauth2ClientSecret</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>OAuth2 client secret.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oauth2ResourceIndicator"></a> <a href="#_endpoint_query_option_oauth2ResourceIndicator" class="anchor"></a><strong>oauth2ResourceIndicator</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>OAuth2 Token endpoint.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oauth2Scope"></a> <a href="#_endpoint_query_option_oauth2Scope" class="anchor"></a><strong>oauth2Scope</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>OAuth2 scope.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oauth2TokenEndpoint"></a> <a href="#_endpoint_query_option_oauth2TokenEndpoint" class="anchor"></a><strong>oauth2TokenEndpoint</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>OAuth2 Resource Indicator.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_sslContextParameters"></a> <a href="#_endpoint_query_option_sslContextParameters" class="anchor"></a><strong>sslContextParameters</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters 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.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">SSLContextParameters</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_x509HostnameVerifier"></a> <a href="#_endpoint_query_option_x509HostnameVerifier" class="anchor"></a><strong>x509HostnameVerifier</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HostnameVerifier</p></td> </tr> </tbody> </table></div> </div> </div> </div> <div class="sect1"> <h2 id="_message_headers"><a class="anchor" href="#_message_headers"></a>Message Headers</h2> <div class="sectionbody"> <div class="paragraph"> <p>The HTTP component supports the following message header(s), which is/are listed below:</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <colgroup> <col> <col> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Name</th> <th class="tableblock halign-left valign-top">Description</th> <th class="tableblock halign-center valign-top">Default</th> <th class="tableblock halign-left valign-top">Type</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_Content-Encoding"></a> <a href="#_endpoint_header_Content-Encoding" class="anchor"></a><strong>Content-Encoding</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#CONTENT_ENCODING"><code>CONTENT_ENCODING</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The HTTP content encoding. Is set on both the IN and OUT message to provide a content encoding, such as gzip.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelHttpResponseCode"></a> <a href="#_endpoint_header_CamelHttpResponseCode" class="anchor"></a><strong>CamelHttpResponseCode</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_RESPONSE_CODE"><code>HTTP_RESPONSE_CODE</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The HTTP response code from the external server. Is 200 for OK.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelHttpResponseText"></a> <a href="#_endpoint_header_CamelHttpResponseText" class="anchor"></a><strong>CamelHttpResponseText</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_RESPONSE_TEXT"><code>HTTP_RESPONSE_TEXT</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The HTTP response text from the external server.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelHttpQuery"></a> <a href="#_endpoint_header_CamelHttpQuery" class="anchor"></a><strong>CamelHttpQuery</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_QUERY"><code>HTTP_QUERY</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>URI parameters. Will override existing URI parameters set directly on the endpoint.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelHttpProtocolVersion"></a> <a href="#_endpoint_header_CamelHttpProtocolVersion" class="anchor"></a><strong>CamelHttpProtocolVersion</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_PROTOCOL_VERSION"><code>HTTP_PROTOCOL_VERSION</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The version of the http protocol used.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_Host"></a> <a href="#_endpoint_header_Host" class="anchor"></a><strong>Host</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_HEADER_HOST"><code>HTTP_HEADER_HOST</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The target host.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelRestHttpUri"></a> <a href="#_endpoint_header_CamelRestHttpUri" class="anchor"></a><strong>CamelRestHttpUri</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#REST_HTTP_URI"><code>REST_HTTP_URI</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The rest http URI.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelHttpUri"></a> <a href="#_endpoint_header_CamelHttpUri" class="anchor"></a><strong>CamelHttpUri</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_URI"><code>HTTP_URI</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <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> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelHttpPath"></a> <a href="#_endpoint_header_CamelHttpPath" class="anchor"></a><strong>CamelHttpPath</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_PATH"><code>HTTP_PATH</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Request URI’s path, the header will be used to build the request URI with the HTTP_URI.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelRestHttpQuery"></a> <a href="#_endpoint_header_CamelRestHttpQuery" class="anchor"></a><strong>CamelRestHttpQuery</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#REST_HTTP_QUERY"><code>REST_HTTP_QUERY</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The rest http query.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelHttpRawQuery"></a> <a href="#_endpoint_header_CamelHttpRawQuery" class="anchor"></a><strong>CamelHttpRawQuery</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_RAW_QUERY"><code>HTTP_RAW_QUERY</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The http raw query.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelHttpMethod"></a> <a href="#_endpoint_header_CamelHttpMethod" class="anchor"></a><strong>CamelHttpMethod</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_METHOD"><code>HTTP_METHOD</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The http method to use.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>GET</p> </li> <li> <p>PATCH</p> </li> <li> <p>POST</p> </li> <li> <p>PUT</p> </li> <li> <p>DELETE</p> </li> <li> <p>HEAD</p> </li> <li> <p>OPTIONS</p> </li> <li> <p>TRACE</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">HttpMethods</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelHttpCharacterEncoding"></a> <a href="#_endpoint_header_CamelHttpCharacterEncoding" class="anchor"></a><strong>CamelHttpCharacterEncoding</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#HTTP_CHARACTER_ENCODING"><code>HTTP_CHARACTER_ENCODING</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The character encoding.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_Content-Type"></a> <a href="#_endpoint_header_Content-Type" class="anchor"></a><strong>Content-Type</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-http/latest/org/apache/camel/component/http/HttpConstants.html#CONTENT_TYPE"><code>CONTENT_TYPE</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The HTTP content type. Is set on both the IN and OUT message to provide a content type, such as text/html.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> </tbody> </table></div> </div> </div> <div class="sect1"> <h2 id="_usage"><a class="anchor" href="#_usage"></a>Usage</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_message_body"><a class="anchor" href="#_message_body"></a>Message Body</h3> <div class="paragraph"> <p>Camel will store the HTTP response from the external server on the <em>OUT</em> body. All headers from the <em>IN</em> message will be copied to the <em>OUT</em> message, so headers are preserved during routing. Additionally, Camel will add the HTTP response headers as well to the <em>OUT</em> message headers.</p> </div> </div> <div class="sect2"> <h3 id="_using_system_properties"><a class="anchor" href="#_using_system_properties"></a>Using System Properties</h3> <div class="paragraph"> <p>When setting useSystemProperties to true, the HTTP Client will look for the following System Properties, and it will use it:</p> </div> <div class="ulist"> <ul> <li> <p><code>ssl.TrustManagerFactory.algorithm</code></p> </li> <li> <p><code>javax.net.ssl.trustStoreType</code></p> </li> <li> <p><code>javax.net.ssl.trustStore</code></p> </li> <li> <p><code>javax.net.ssl.trustStoreProvider</code></p> </li> <li> <p><code>javax.net.ssl.trustStorePassword</code></p> </li> <li> <p><code>java.home</code></p> </li> <li> <p><code>ssl.KeyManagerFactory.algorithm</code></p> </li> <li> <p><code>javax.net.ssl.keyStoreType</code></p> </li> <li> <p><code>javax.net.ssl.keyStore</code></p> </li> <li> <p><code>javax.net.ssl.keyStoreProvider</code></p> </li> <li> <p><code>javax.net.ssl.keyStorePassword</code></p> </li> <li> <p><code>http.proxyHost</code></p> </li> <li> <p><code>http.proxyPort</code></p> </li> <li> <p><code>http.nonProxyHosts</code></p> </li> <li> <p><code>http.keepAlive</code></p> </li> <li> <p><code>http.maxConnections</code></p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_response_code"><a class="anchor" href="#_response_code"></a>Response code</h3> <div class="paragraph"> <p>Camel will handle, according to the HTTP response code:</p> </div> <div class="ulist"> <ul> <li> <p>Response code is in the range 100..299, Camel regards it as a success response.</p> </li> <li> <p>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.</p> </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> </li> </ul> </div> <div class="paragraph"> <p><strong>throwExceptionOnFailure</strong></p> </div> <div class="paragraph"> <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.</p> </div> </div> <div class="sect2"> <h3 id="_handling_http_429_too_many_requests"><a class="anchor" href="#_handling_http_429_too_many_requests"></a>Handling HTTP 429 Too Many Requests</h3> <div class="paragraph"> <p>When a server responds with HTTP 429 (Too Many Requests) and includes a <code>Retry-After</code> header, the underlying Apache HttpClient 5 will automatically wait for the specified duration before retrying the request. If the server returns a long retry delay (for example, <code>Retry-After: 3600</code> for one hour), the HTTP component will appear to hang for that duration.</p> </div> <div class="paragraph"> <p>To avoid this, you can disable automatic retries on the component:</p> </div> <div class="listingblock"> <div class="title"><em>Java-only: programmatic <code>HttpComponent</code> configuration</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">HttpComponent httpComponent = context.getComponent("https", HttpComponent.class); |
| httpComponent.setAutomaticRetriesDisabled(true);</code></pre> </div> </div> <div class="paragraph"> <p>Or as a URI option on the endpoint:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">https://myhost/mypath?automaticRetriesDisabled=true</code></pre> </div> </div> <div class="paragraph"> <p>With automatic retries disabled, a 429 response is treated as an error and a <code>HttpOperationFailedException</code> is thrown immediately (unless <code>throwExceptionOnFailure=false</code>).</p> </div> </div> <div class="sect2"> <h3 id="_exceptions"><a class="anchor" href="#_exceptions"></a>Exceptions</h3> <div class="paragraph"> <p><code>HttpOperationFailedException</code> exception contains the following information:</p> </div> <div class="ulist"> <ul> <li> <p>The HTTP status code</p> </li> <li> <p>The HTTP status line (text of the status code)</p> </li> <li> <p>Redirect location if server returned a redirect</p> </li> <li> <p>Response body as a <code>java.lang.String</code>, if server provided a body as response</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_which_http_method_will_be_used"><a class="anchor" href="#_which_http_method_will_be_used"></a>Which HTTP method will be used</h3> <div class="paragraph"> <p>The following algorithm is used to determine what HTTP method should be used:<br> 1. Use method provided as endpoint configuration (<code>httpMethod</code>).<br> 2. Use method provided in header (<code>Exchange.HTTP_METHOD</code>).<br> 3. <code>GET</code> if query string is provided in header.<br> 4. <code>GET</code> if endpoint is configured with a query string.<br> 5. <code>POST</code> if there is data to send (body is not <code>null</code>).<br> 6. <code>GET</code> otherwise.</p> </div> </div> <div class="sect2"> <h3 id="_configuring_uri_to_call"><a class="anchor" href="#_configuring_uri_to_call"></a>Configuring URI to call</h3> <div class="paragraph"> <p>You can set the HTTP producer’s URI directly from the endpoint URI. In the route below, Camel will call out to the external server, <code>oldhost</code>, using HTTP.</p> </div> <div id="_tabs_1" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_1_java" class="tab"> <p>Java</p> </li> <li id="_tabs_1_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_1_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_1_java--panel" class="tabpanel" aria-labelledby="_tabs_1_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .to("http://oldhost");</code></pre> </div> </div> </div> <div id="_tabs_1_xml--panel" class="tabpanel" aria-labelledby="_tabs_1_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <to uri="http://oldhost"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_1_yaml--panel" class="tabpanel" aria-labelledby="_tabs_1_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: direct:start |
| steps: |
| - to: |
| uri: http://oldhost</code></pre> </div> </div> </div> </div> </div> <div class="paragraph"> <p>You can override the HTTP endpoint URI by adding a header with the key <code>Exchange.HTTP_URI</code> on the message.</p> </div> <div id="_tabs_2" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_2_java" class="tab"> <p>Java</p> </li> <li id="_tabs_2_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_2_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_2_java--panel" class="tabpanel" aria-labelledby="_tabs_2_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .setHeader("CamelHttpUri", constant("http://newhost")) |
| .to("http://oldhost");</code></pre> </div> </div> </div> <div id="_tabs_2_xml--panel" class="tabpanel" aria-labelledby="_tabs_2_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <setHeader name="CamelHttpUri"> |
| <constant>http://newhost</constant> |
| </setHeader> |
| <to uri="http://oldhost"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_2_yaml--panel" class="tabpanel" aria-labelledby="_tabs_2_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: direct:start |
| steps: |
| - setHeader: |
| name: CamelHttpUri |
| constant: "http://newhost" |
| - to: |
| uri: http://oldhost</code></pre> </div> </div> </div> </div> </div> <div class="paragraph"> <p>In the sample above, Camel will call the <a href="http://newhost" class="bare">http://newhost</a> despite the endpoint is configured with <a href="http://oldhost" class="bare">http://oldhost</a>.<br> If the http endpoint is working in bridge mode, it will ignore the message header of <code>Exchange.HTTP_URI</code>.</p> </div> </div> <div class="sect2"> <h3 id="_configuring_uri_parameters"><a class="anchor" href="#_configuring_uri_parameters"></a>Configuring URI Parameters</h3> <div class="paragraph"> <p>The <strong>http</strong> producer supports URI parameters to be sent to the HTTP server. The URI parameters can either be set directly on the endpoint URI or as a header with the key <code>Exchange.HTTP_QUERY</code> on the message.</p> </div> <div id="_tabs_3" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_3_java" class="tab"> <p>Java</p> </li> <li id="_tabs_3_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_3_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_3_java--panel" class="tabpanel" aria-labelledby="_tabs_3_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .to("http://oldhost?order=123&detail=short");</code></pre> </div> </div> </div> <div id="_tabs_3_xml--panel" class="tabpanel" aria-labelledby="_tabs_3_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <to uri="http://oldhost?order=123&amp;detail=short"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_3_yaml--panel" class="tabpanel" aria-labelledby="_tabs_3_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: direct:start |
| steps: |
| - to: |
| uri: http://oldhost |
| parameters: |
| order: 123 |
| detail: short</code></pre> </div> </div> </div> </div> </div> <div class="paragraph"> <p>Or options provided in a header:</p> </div> <div id="_tabs_4" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_4_java" class="tab"> <p>Java</p> </li> <li id="_tabs_4_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_4_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_4_java--panel" class="tabpanel" aria-labelledby="_tabs_4_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .setHeader("CamelHttpQuery", constant("order=123&detail=short")) |
| .to("http://oldhost");</code></pre> </div> </div> </div> <div id="_tabs_4_xml--panel" class="tabpanel" aria-labelledby="_tabs_4_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <setHeader name="CamelHttpQuery"> |
| <constant>order=123&amp;detail=short</constant> |
| </setHeader> |
| <to uri="http://oldhost"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_4_yaml--panel" class="tabpanel" aria-labelledby="_tabs_4_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: direct:start |
| steps: |
| - setHeader: |
| name: CamelHttpQuery |
| constant: "order=123&detail=short" |
| - to: |
| uri: http://oldhost</code></pre> </div> </div> </div> </div> </div> </div> <div class="sect2"> <h3 id="_how_to_set_the_http_method_getpatchpostputdeleteheadoptionstrace_to_the_http_producer"><a class="anchor" href="#_how_to_set_the_http_method_getpatchpostputdeleteheadoptionstrace_to_the_http_producer"></a>How to set the http method (GET/PATCH/POST/PUT/DELETE/HEAD/OPTIONS/TRACE) to the HTTP producer</h3> <div class="paragraph"> <p>The HTTP component provides a way to set the HTTP request method by setting the message header. Here is an example:</p> </div> <div id="_tabs_5" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_5_java" class="tab"> <p>Java</p> </li> <li id="_tabs_5_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_5_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_5_java--panel" class="tabpanel" aria-labelledby="_tabs_5_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .setHeader("CamelHttpMethod", constant("POST")) |
| .to("http://www.google.com") |
| .to("mock:results");</code></pre> </div> </div> </div> <div id="_tabs_5_xml--panel" class="tabpanel" aria-labelledby="_tabs_5_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <setHeader name="CamelHttpMethod"> |
| <constant>POST</constant> |
| </setHeader> |
| <to uri="http://www.google.com"/> |
| <to uri="mock:results"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_5_yaml--panel" class="tabpanel" aria-labelledby="_tabs_5_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: direct:start |
| steps: |
| - setHeader: |
| name: CamelHttpMethod |
| constant: POST |
| - to: |
| uri: http://www.google.com |
| - to: |
| uri: mock:results</code></pre> </div> </div> </div> </div> </div> </div> <div class="sect2"> <h3 id="_using_client_timeout_so_timeout"><a class="anchor" href="#_using_client_timeout_so_timeout"></a>Using client timeout - SO_TIMEOUT</h3> <div class="paragraph"> <p>See the <a href="https://github.com/apache/camel/blob/main/components/camel-http/src/test/java/org/apache/camel/component/http/HttpSOTimeoutTest.java">HttpSOTimeoutTest</a> unit test.</p> </div> </div> <div class="sect2"> <h3 id="_configuring_a_proxy"><a class="anchor" href="#_configuring_a_proxy"></a>Configuring a Proxy</h3> <div class="paragraph"> <p>The HTTP component provides a way to configure a proxy.</p> </div> <div id="_tabs_6" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_6_java" class="tab"> <p>Java</p> </li> <li id="_tabs_6_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_6_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_6_java--panel" class="tabpanel" aria-labelledby="_tabs_6_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .to("http://oldhost?proxyAuthHost=www.myproxy.com&proxyAuthPort=80");</code></pre> </div> </div> </div> <div id="_tabs_6_xml--panel" class="tabpanel" aria-labelledby="_tabs_6_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <to uri="http://oldhost?proxyAuthHost=www.myproxy.com&amp;proxyAuthPort=80"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_6_yaml--panel" class="tabpanel" aria-labelledby="_tabs_6_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: direct:start |
| steps: |
| - to: |
| uri: http://oldhost |
| parameters: |
| proxyAuthHost: www.myproxy.com |
| proxyAuthPort: 80</code></pre> </div> </div> </div> </div> </div> <div class="paragraph"> <p>There is also support for proxy authentication via the <code>proxyAuthUsername</code> and <code>proxyAuthPassword</code> options.</p> </div> <div class="sect3"> <h4 id="_using_proxy_settings_outside_of_uri"><a class="anchor" href="#_using_proxy_settings_outside_of_uri"></a>Using proxy settings outside of URI</h4> <div class="paragraph"> <p><strong>Deprecated</strong></p> </div> <div class="paragraph"> <p>To avoid System properties conflicts, you can set proxy configuration only from the CamelContext or URI.<br> Java DSL :</p> </div> <div class="listingblock"> <div class="title"><em>Java-only: programmatic <code>CamelContext</code> global options configuration (deprecated)</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">context.getGlobalOptions().put("http.proxyHost", "172.168.18.9"); |
| context.getGlobalOptions().put("http.proxyPort", "8080");</code></pre> </div> </div> <div class="paragraph"> <p>Spring XML</p> </div> <div class="listingblock"> <div class="title"><em>XML-only: Spring XML global options configuration (deprecated)</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><camelContext> |
| <properties> |
| <property key="http.proxyHost" value="172.168.18.9"/> |
| <property key="http.proxyPort" value="8080"/> |
| </properties> |
| </camelContext></code></pre> </div> </div> <div class="paragraph"> <p>Camel will first set the settings from Java System or CamelContext Properties and then the endpoint proxy options if provided. So you can override the system properties with the endpoint options.</p> </div> <div class="paragraph"> <p>There is also a <code>http.proxyScheme</code> property you can set to explicitly configure the scheme to use.</p> </div> <div class="admonitionblock important"> <div class="table-wrapper"><table> <tr> <td class="icon"> <i class="fa icon-important" title="Important"></i> </td> <td class="content"> Using GlobalOptions (as shown above) is deprecated. Instead, configure proxy settings on the HTTP component level. </td> </tr> </table></div> </div> </div> </div> <div class="sect2"> <h3 id="_configuring_charset"><a class="anchor" href="#_configuring_charset"></a>Configuring charset</h3> <div class="paragraph"> <p>If you are using <code>POST</code> to send data you can configure the <code>charset</code> using the <code>Exchange</code> property:</p> </div> <div class="listingblock"> <div class="title"><em>Java-only: setting exchange property programmatically</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">exchange.setProperty(Exchange.CHARSET_NAME, "ISO-8859-1");</code></pre> </div> </div> <div class="sect3"> <h4 id="_example_with_scheduled_poll"><a class="anchor" href="#_example_with_scheduled_poll"></a>Example with scheduled poll</h4> <div class="paragraph"> <p>This sample polls the Google homepage every 10 seconds and write the page to the file <code>message.html</code>:</p> </div> <div id="_tabs_7" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_7_java" class="tab"> <p>Java</p> </li> <li id="_tabs_7_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_7_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_7_java--panel" class="tabpanel" aria-labelledby="_tabs_7_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("timer://foo?fixedRate=true&delay=0&period=10000") |
| .to("http://www.google.com") |
| .setHeader("CamelFileName", constant("message.html")) |
| .to("file:target/google");</code></pre> </div> </div> </div> <div id="_tabs_7_xml--panel" class="tabpanel" aria-labelledby="_tabs_7_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="timer://foo?fixedRate=true&amp;delay=0&amp;period=10000"/> |
| <to uri="http://www.google.com"/> |
| <setHeader name="CamelFileName"> |
| <constant>message.html</constant> |
| </setHeader> |
| <to uri="file:target/google"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_7_yaml--panel" class="tabpanel" aria-labelledby="_tabs_7_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: timer://foo |
| parameters: |
| fixedRate: true |
| delay: 0 |
| period: 10000 |
| steps: |
| - to: |
| uri: http://www.google.com |
| - setHeader: |
| name: CamelFileName |
| constant: message.html |
| - to: |
| uri: file:target/google</code></pre> </div> </div> </div> </div> </div> </div> <div class="sect3"> <h4 id="_uri_parameters_from_the_endpoint_uri"><a class="anchor" href="#_uri_parameters_from_the_endpoint_uri"></a>URI Parameters from the endpoint URI</h4> <div class="paragraph"> <p>In this sample, we have the complete URI endpoint that is just what you would have typed in a web browser. Multiple URI parameters can of course be set using the <code>&</code> character as separator, just as you would in the web browser. Camel does no tricks here.</p> </div> <div class="listingblock"> <div class="title"><em>Java-only: uses <code>ProducerTemplate</code> test API</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// we query for Camel at the Google page |
| template.sendBody("http://www.google.com/search?q=Camel", null);</code></pre> </div> </div> </div> <div class="sect3"> <h4 id="_uri_parameters_from_the_message"><a class="anchor" href="#_uri_parameters_from_the_message"></a>URI Parameters from the Message</h4> <div class="listingblock"> <div class="title"><em>Java-only: uses <code>ProducerTemplate</code> test API with headers</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">Map headers = new HashMap(); |
| headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en"); |
| // we query for Camel and English language at Google |
| template.sendBody("http://www.google.com/search", null, headers);</code></pre> </div> </div> <div class="paragraph"> <p>In the header value above notice that it should <strong>not</strong> be prefixed with <code>?</code> and you can separate parameters as usual with the <code>&</code> char.</p> </div> </div> <div class="sect3"> <h4 id="_getting_the_response_code"><a class="anchor" href="#_getting_the_response_code"></a>Getting the Response Code</h4> <div class="paragraph"> <p>You can get the HTTP response code from the HTTP component by getting the value from the Out message header with <code>Exchange.HTTP_RESPONSE_CODE</code>.</p> </div> <div class="listingblock"> <div class="title"><em>Java-only: uses <code>ProducerTemplate</code> and <code>Processor</code> to inspect response code</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">Exchange exchange = template.send("http://www.google.com/search", e -> { |
| e.getIn().setHeader("CamelHttpQuery", "hl=en&q=activemq"); |
| }); |
| Message out = exchange.getMessage(); |
| int responseCode = out.getHeader("CamelHttpResponseCode", Integer.class);</code></pre> </div> </div> </div> </div> <div class="sect2"> <h3 id="_defining_specific_properties_of_apache_http_client_via_camel_parameters"><a class="anchor" href="#_defining_specific_properties_of_apache_http_client_via_camel_parameters"></a>Defining specific properties of Apache HTTP client via Camel parameters</h3> <div class="paragraph"> <p>There are different parameters you could set in a route, that will influence the behavior of the Apache HTTP Client.</p> </div> <div class="paragraph"> <p>Most of the option are available here: <a href="https://hc.apache.org/httpcomponents-client-5.4.x/current/httpclient5/apidocs/org/apache/hc/client5/http/config/RequestConfig.Builder.html">Apache HttpClient Request Config Builder</a>.</p> </div> <div class="ulist"> <ul> <li> <p>httpClient.authenticationEnabled - Determines whether authentication should be handled automatically.</p> </li> <li> <p>httpClient.circularRedirectsAllowed - Determines whether circular redirects (redirects to the same location) should be allowed.</p> </li> <li> <p>httpClient.connectionKeepAlive - Determines the default of value of connection keep-alive time period when not explicitly communicated by the origin server with a Keep-Alive response header.</p> </li> <li> <p>httpClient.connectionRequestTimeout - Determines the connection lease request timeout used when requesting a connection from the connection manager.</p> </li> <li> <p>httpClient.contentCompressionEnabled - Determines whether the target server is requested to compress content.</p> </li> <li> <p>httpClient.cookieSpec - Determines the name of the cookie specification to be used for HTTP state management.</p> </li> <li> <p>httpClient.defaultKeepAlive - Determines the default keep-alive</p> </li> <li> <p>httpClient.expectContinueEnabled - Determines whether the 'Expect: 100-Continue' handshake is enabled for entity enclosing methods.</p> </li> <li> <p>httpClient.hardCancellationEnabled - Determines whether request cancellation should kill the underlying connection.</p> </li> <li> <p>httpClient.maxRedirects - Determines the maximum number of redirects to be followed.</p> </li> <li> <p>httpClient.protocolUpgradeEnabled - Determines whether the client server should automatically attempt to upgrade to a safer or a newer version of the protocol, whenever possible.</p> </li> <li> <p>httpClient.redirectsEnabled - Determines whether redirects should be handled automatically.</p> </li> <li> <p>httpClient.responseTimeout - Determines the timeout until arrival of a response from the opposite endpoint.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_disabling_cookies"><a class="anchor" href="#_disabling_cookies"></a>Disabling Cookies</h3> <div class="paragraph"> <p>To disable cookies in the CookieStore, you can set the HTTP Client to ignore cookies by adding this URI option: <code>httpClient.cookieSpec=ignore</code>. This doesn’t affect cookies manually set in the <code>Cookie</code> header</p> </div> </div> <div class="sect2"> <h3 id="_basic_auth_with_the_streaming_message_body"><a class="anchor" href="#_basic_auth_with_the_streaming_message_body"></a>Basic auth with the streaming message body</h3> <div class="paragraph"> <p>To avoid the <code>NonRepeatableRequestException</code>, you need to do the Preemptive Basic Authentication by adding the option: <code>authenticationPreemptive=true</code></p> </div> </div> <div class="sect2"> <h3 id="_oauth2_support"><a class="anchor" href="#_oauth2_support"></a>OAuth2 Support</h3> <div class="paragraph"> <p>To get an access token from an Authorization Server and fill that in Authorization header to do requests to protected services, you will need to use <code>oauth2ClientId</code>, <code>oauth2ClientSecret</code> and <code>oauth2TokenEndpoint</code> properties, and those should be defined as specified at RFC 6749 and provided by your Authorization Server.</p> </div> <div class="paragraph"> <p>In below example camel will do an underlying request to <code><a href="https://localhost:8080/realms/master/protocol/openid-connect/token" class="bare">https://localhost:8080/realms/master/protocol/openid-connect/token</a></code> using provided credentials (client id and client secret), then will get <code>access_token</code> from response and lastly will fill it at <code>Authorization</code> header of request which will be done to <code><a href="https://localhost:9090" class="bare">https://localhost:9090</a></code>.</p> </div> <div id="_tabs_8" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_8_java" class="tab"> <p>Java</p> </li> <li id="_tabs_8_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_8_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_8_java--panel" class="tabpanel" aria-labelledby="_tabs_8_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .to("https://localhost:9090/?oauth2ClientId=my-client-id&oauth2ClientSecret=my-client-secret&oauth2TokenEndpoint=https://localhost:8080/realms/master/protocol/openid-connect/token&oauth2Scope=my-scope");</code></pre> </div> </div> </div> <div id="_tabs_8_xml--panel" class="tabpanel" aria-labelledby="_tabs_8_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <to uri="https://localhost:9090/?oauth2ClientId=my-client-id&amp;oauth2ClientSecret=my-client-secret&amp;oauth2TokenEndpoint=https://localhost:8080/realms/master/protocol/openid-connect/token&amp;oauth2Scope=my-scope"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_8_yaml--panel" class="tabpanel" aria-labelledby="_tabs_8_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: direct:start |
| steps: |
| - to: |
| uri: "https://localhost:9090/" |
| parameters: |
| oauth2ClientId: my-client-id |
| oauth2ClientSecret: my-client-secret |
| oauth2TokenEndpoint: "https://localhost:8080/realms/master/protocol/openid-connect/token" |
| oauth2Scope: my-scope</code></pre> </div> </div> </div> </div> </div> <div class="paragraph"> <p>Additional support for OAuth2 is for RFC 8707 where a <em>Resource Indicator</em> must be provided in the body:</p> </div> <div id="_tabs_9" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_9_java" class="tab"> <p>Java</p> </li> <li id="_tabs_9_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_9_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_9_java--panel" class="tabpanel" aria-labelledby="_tabs_9_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .to("https://localhost:9090/?oauth2ClientId=my-client-id&oauth2ClientSecret=my-client-secret&oauth2TokenEndpoint=https://localhost:8080/realms/master/protocol/openid-connect/token&oauth2Scope=my-scope&oauth2ResourceIndicator=https://localhost:9090");</code></pre> </div> </div> </div> <div id="_tabs_9_xml--panel" class="tabpanel" aria-labelledby="_tabs_9_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <to uri="https://localhost:9090/?oauth2ClientId=my-client-id&amp;oauth2ClientSecret=my-client-secret&amp;oauth2TokenEndpoint=https://localhost:8080/realms/master/protocol/openid-connect/token&amp;oauth2Scope=my-scope&amp;oauth2ResourceIndicator=https://localhost:9090"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_9_yaml--panel" class="tabpanel" aria-labelledby="_tabs_9_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: direct:start |
| steps: |
| - to: |
| uri: "https://localhost:9090/" |
| parameters: |
| oauth2ClientId: my-client-id |
| oauth2ClientSecret: my-client-secret |
| oauth2TokenEndpoint: "https://localhost:8080/realms/master/protocol/openid-connect/token" |
| oauth2Scope: my-scope |
| oauth2ResourceIndicator: "https://localhost:9090"</code></pre> </div> </div> </div> </div> </div> <div class="admonitionblock note"> <div class="table-wrapper"><table> <tr> <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> <td class="content"> Resource Indicator is the URL to the actual endpoint as defined in the component URI. </td> </tr> </table></div> </div> <div class="admonitionblock note"> <div class="table-wrapper"><table> <tr> <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> <td class="content"> Camel only provides support for OAuth2 client credentials flow </td> </tr> </table></div> </div> <div class="admonitionblock important"> <div class="table-wrapper"><table> <tr> <td class="icon"> <i class="fa icon-important" title="Important"></i> </td> <td class="content"> Camel does not perform any validation in access token. It’s up to the underlying service to validate it. </td> </tr> </table></div> </div> </div> <div class="sect2"> <h3 id="_advanced_usage"><a class="anchor" href="#_advanced_usage"></a>Advanced Usage</h3> <div class="paragraph"> <p>If you need more control over the HTTP producer, you should use the <code>HttpComponent</code> where you can set various classes to give you custom behavior.</p> </div> <div class="sect3"> <h4 id="_setting_up_ssl_for_http_client"><a class="anchor" href="#_setting_up_ssl_for_http_client"></a>Setting up SSL for HTTP Client</h4> <div id="HTTP-UsingtheJSSEConfigurationUtility" class="paragraph"> <p>Using the JSSE Configuration Utility</p> </div> <div class="paragraph"> <p>The HTTP component supports SSL/TLS configuration through the <a href="../../manual/camel-configuration-utilities.html" class="xref page">Camel JSSE Configuration Utility</a>. This utility greatly decreases the amount of component-specific code you need to write and is configurable at the endpoint and component levels. The following examples demonstrate how to use the utility with the HTTP component.</p> </div> <div id="HTTP-Programmaticconfigurationofthecomponent" class="paragraph"> <p>Programmatic configuration of the component</p> </div> <div class="listingblock"> <div class="title"><em>Java-only: programmatic <code>SSLContextParameters</code> setup</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">KeyStoreParameters ksp = new KeyStoreParameters(); |
| ksp.setResource("file:/users/home/server/keystore.jks"); |
| ksp.setPassword("keystorePassword"); |
| |
| KeyManagersParameters kmp = new KeyManagersParameters(); |
| kmp.setKeyStore(ksp); |
| kmp.setKeyPassword("keyPassword"); |
| |
| SSLContextParameters scp = new SSLContextParameters(); |
| scp.setKeyManagers(kmp); |
| |
| HttpComponent httpComponent = getContext().getComponent("https", HttpComponent.class); |
| httpComponent.setSslContextParameters(scp);</code></pre> </div> </div> <div id="HTTP-SpringDSLbasedconfigurationofendpoint" class="paragraph"> <p>Spring DSL based configuration of endpoint</p> </div> <div class="listingblock"> <div class="title"><em>XML-only: Spring XML SSL context parameters and endpoint reference</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"> <camel:sslContextParameters |
| id="sslContextParameters"> |
| <camel:keyManagers |
| keyPassword="keyPassword"> |
| <camel:keyStore |
| resource="file:/users/home/server/keystore.jks" |
| password="keystorePassword"/> |
| </camel:keyManagers> |
| </camel:sslContextParameters> |
| |
| <to uri="https://127.0.0.1/mail/?sslContextParameters=#sslContextParameters"/></code></pre> </div> </div> <div id="HTTP-ConfiguringApacheHTTPClientDirectly" class="paragraph"> <p>Configuring Apache HTTP Client Directly</p> </div> <div class="paragraph"> <p>Basically, a camel-http component is built on the top of <a href="https://hc.apache.org/httpcomponents-client-5.1.x/">Apache HttpClient</a>. Please refer to <a href="https://hc.apache.org/httpcomponents-client-4.5.x/current/tutorial/html/connmgmt.html">SSL/TLS customization</a> (even if the link is referring to an article about version 4, it is still more or less relevant moreover there is no equivalent for version 5) for details or have a look into the <code>org.apache.camel.component.http.HttpsServerTestSupport</code> unit test base class.<br> You can also implement a custom <code>org.apache.camel.component.http.HttpClientConfigurer</code> to do some configuration on the http client if you need full control of it.</p> </div> <div class="paragraph"> <p>However, if you <em>just</em> want to specify the keystore and truststore, you can do this with Apache HTTP <code>HttpClientConfigurer</code>, for example:</p> </div> <div class="listingblock"> <div class="title"><em>Java-only: programmatic <code>KeyStore</code> and <code>SchemeRegistry</code> setup</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">KeyStore keystore = ...; |
| KeyStore truststore = ...; |
| |
| SchemeRegistry registry = new SchemeRegistry(); |
| registry.register(new Scheme("https", 443, new SSLSocketFactory(keystore, "mypassword", truststore)));</code></pre> </div> </div> <div class="paragraph"> <p>And then you need to create a class that implements <code>HttpClientConfigurer</code>, and registers https protocol providing a keystore or truststore per the example above. Then, from your camel route builder class, you can hook it up like so:</p> </div> <div class="listingblock"> <div class="title"><em>Java-only: programmatic <code>HttpClientConfigurer</code> setup</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">HttpComponent httpComponent = getContext().getComponent("http", HttpComponent.class); |
| httpComponent.setHttpClientConfigurer(new MyHttpClientConfigurer());</code></pre> </div> </div> <div class="paragraph"> <p>If you are doing this using the Spring DSL, you can specify your <code>HttpClientConfigurer</code> using the URI. For example:</p> </div> <div class="listingblock"> <div class="title"><em>XML-only: Spring bean and endpoint reference for `HttpClientConfigurer`</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><bean id="myHttpClientConfigurer" |
| class="my.https.HttpClientConfigurer"> |
| </bean> |
| |
| <to uri="https://myhostname.com:443/myURL?httpClientConfigurer=myHttpClientConfigurer"/></code></pre> </div> </div> <div class="paragraph"> <p>As long as you implement the <code>HttpClientConfigurer</code> and configure your keystore and truststore as described above, it will work fine.</p> </div> <div id="HTTP-UsingHTTPStoauthenticategotchas" class="paragraph"> <p>Using HTTPS to authenticate gotchas</p> </div> <div class="paragraph"> <p>An end user reported that he had a problem with authenticating with HTTPS. The problem was eventually resolved by providing a custom configured <code>org.apache.hc.core5.http.protocol.HttpContext</code>:</p> </div> <div class="ulist"> <ul> <li> <p>1. Create a (Spring) factory for HttpContexts:</p> </li> </ul> </div> <div class="listingblock"> <div class="title"><em>Java-only: custom <code>HttpContext</code> factory for preemptive basic authentication</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class HttpContextFactory { |
| |
| private String httpHost = "localhost"; |
| private String httpPort = 9001; |
| private String user = "some-user"; |
| private String password = "my-secret"; |
| |
| private HttpClientContext context = HttpClientContext.create(); |
| private BasicAuthCache authCache = new BasicAuthCache(); |
| private BasicScheme basicAuth = new BasicScheme(); |
| |
| public HttpContext getObject() { |
| UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(user, password.toCharArray()); |
| BasicCredentialsProvider provider = new BasicCredentialsProvider(); |
| HttpHost host = new HttpHost(httpHost, httpPort); |
| provider.setCredentials(host, credentials); |
| |
| authCache.put(host, basicAuth); |
| |
| httpContext.setAuthCache(authCache); |
| httpContext.setCredentialsProvider(provider); |
| |
| return httpContext; |
| } |
| |
| // getter and setter |
| }</code></pre> </div> </div> <div class="ulist"> <ul> <li> <p>2. Declare an` HttpContext` in the Spring application context file:</p> </li> </ul> </div> <div class="listingblock"> <div class="title"><em>XML-only: Spring bean declaration for <code>HttpContext</code> factory</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><bean id="myHttpContext" factory-bean="httpContextFactory" factory-method="getObject"/></code></pre> </div> </div> <div class="ulist"> <ul> <li> <p>3. Reference the context in the http URL:</p> </li> </ul> </div> <div class="listingblock"> <div class="title"><em>XML-only: endpoint URI referencing the <code>HttpContext</code> bean</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><to uri="https://myhostname.com:443/myURL?httpContext=myHttpContext"/></code></pre> </div> </div> <div id="HTTP-UsingdifferentSSLContextParameters" class="paragraph"> <p>Using different SSLContextParameters</p> </div> <div class="paragraph"> <p>The <a href="#">HTTP</a> component only supports one instance of <code>org.apache.camel.support.jsse.SSLContextParameters</code> per component. If you need to use two or more different instances, then you need to set up multiple <a href="#">HTTP</a> components as shown below. Where we have two components, each using their own instance of <code>sslContextParameters</code> property.</p> </div> <div class="listingblock"> <div class="title"><em>XML-only: Spring bean declarations for multiple HTTP components with different SSL contexts</em></div> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><bean id="http-foo" class="org.apache.camel.component.http.HttpComponent"> |
| <property name="sslContextParameters" ref="sslContextParams1"/> |
| <property name="x509HostnameVerifier" ref="hostnameVerifier"/> |
| </bean> |
| |
| <bean id="http-bar" class="org.apache.camel.component.http.HttpComponent"> |
| <property name="sslContextParameters" ref="sslContextParams2"/> |
| <property name="x509HostnameVerifier" ref="hostnameVerifier"/> |
| </bean></code></pre> </div> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_removing_http_protocol_headers_in_the_camel_message"><a class="anchor" href="#_removing_http_protocol_headers_in_the_camel_message"></a>Removing http protocol headers in the Camel Message</h2> <div class="sectionbody"> <div class="paragraph"> <p>In camel there are a number of components that use the http protocol headers to do their business.</p> </div> <div class="paragraph"> <p>The components include camel-http, camel-jetty, camel-cxf, etc.</p> </div> <div class="paragraph"> <p>If you are using these component, you may pay attention to the HTTP protocol headers:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text"> Exchange.CONTENT_ENCODING |
| Exchange.CONTENT_TYPE |
| Exchange.HTTP_BASE_URI |
| Exchange.HTTP_CHARACTER_ENCODING |
| Exchange.HTTP_METHOD |
| Exchange.HTTP_PATH |
| Exchange.HTTP_QUERY |
| Exchange.HTTP_RESPONSE_CODE</code></pre> </div> </div> <div class="paragraph"> <p>If you don’t want these headers to bother your other endpoints, you can remove these headers using <a href="eips/removeHeaders-eip.html" class="xref page">Remove Headers</a> EIP as follows:</p> </div> <div id="_tabs_10" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_10_java" class="tab"> <p>Java</p> </li> <li id="_tabs_10_xml" class="tab"> <p>XML</p> </li> <li id="_tabs_10_yaml" class="tab"> <p>YAML</p> </li> </ul> </div> <div id="_tabs_10_java--panel" class="tabpanel" aria-labelledby="_tabs_10_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("jetty://http://myhost:9000/myservice/") |
| .removeHeaders("CamelHttp*") |
| .to("otherEndpoint");</code></pre> </div> </div> </div> <div id="_tabs_10_xml--panel" class="tabpanel" aria-labelledby="_tabs_10_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="jetty://http://myhost:9000/myservice/"/> |
| <removeHeaders pattern="CamelHttp*" /> |
| <to uri="otherEndpoint"/> |
| </route></code></pre> </div> </div> </div> <div id="_tabs_10_yaml--panel" class="tabpanel" aria-labelledby="_tabs_10_yaml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">- route: |
| from: |
| uri: jetty://http://myhost:9000/myservice/ |
| steps: |
| - removeHeaders: |
| pattern: "CamelHttp*" |
| - to: |
| uri: otherEndpoint</code></pre> </div> </div> </div> </div> </div> </div> </div> </article> <aside class="toc sidebar" aria-label="Table of contents" data-title="Contents" data-levels="2"> <div class="toc-menu"></div> </aside> </div> </main> </div> <div class="footer-tools"> <a href="#top" title="Reach the top of the page">Back to top</a> </div> <footer> <div class="footer"> <figure class="logo"> <img src="../../_/img/logo-d-a567cee6fa.svg" class="logo-small mt-60" alt="Apache Camel Logo" aria-label="white silhouette of a camel in front of a sand dune"> </figure> <input id="footer-toggle-overview" type="checkbox" title="Show/Hide Overview section"> <dl> <dt><label for="footer-toggle-overview">Overview</label><label for="footer-toggle-overview">+</label></dt> <dd><a href="../../blog/">Blog</a></dd> <dd><a href="../../docs/">Documentation</a></dd> <dd><a href="../../community/support/">Community</a></dd> <dd><a href="../../download/">Download</a></dd> </dl> <input id="footer-toggle-documentation" type="checkbox" title="Show/Hide Documentation section"> <dl> <dt><label for="footer-toggle-documentation">Documentation</label><label for="footer-toggle-documentation">+</label></dt> <dd><a href="../../manual/">User Manual</a></dd> <dd><a href="../../components/next/index.html">Components</a></dd> <dd><a href="../../camel-k/next/">Camel-K</a></dd> <dd><a href="../../camel-kafka-connector/next/">Camel Kafka Connector</a></dd> <dd><a href="../../camel-quarkus/next/">Camel Quarkus</a></dd> <dd><a href="../../camel-spring-boot/next/">Camel Spring Boot</a></dd> <dd><a href="../../camel-karaf/latest/">Camel Karaf</a></dd> <dd><a href="../../manual/faq/index.html">FAQ</a></dd> </dl> <input id="footer-toggle-community" type="checkbox" title="Show/Hide Community section"> <dl> <dt><label for="footer-toggle-community">Community</label><label for="footer-toggle-community">+</label></dt> <dd><a href="../../community/support/">Support</a></dd> <dd><a href="../../community/contributing/">Contributing</a></dd> <dd><a href="../../community/mailing-list/">Mailing Lists</a></dd> <dd><a href="../../community/user-stories/">User stories</a></dd> <dd><a href="../../community/articles/">Articles</a></dd> <dd><a href="../../community/books/">Books</a></dd> <dd><a href="../../community/team/">Team</a></dd> </dl> <input id="footer-toggle-about" type="checkbox" title="Show/Hide Acknowledgements section"> <dl> <dt><label for="footer-toggle-about">About</label><label for="footer-toggle-about">+</label></dt> <dd><a href="../../acknowledgments/">Acknowledgments</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/events/current-event.html" title="Apache Events">Apache Events</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/licenses/" title="License">License</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/security/" title="Security">Security</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></dd> </dl> <p class="remark"> © 2004-2026 The <a href="https://apache.org">Apache Software Foundation</a>.<br> Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p> <div class="resources"> <div class="context"> <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a> </div> <div class="context"> <a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a> </div> <div class="context"> <a href="../../sitemap/">Sitemap</a> </div> </div> <div class="footer-icons"> <a rel="noopener noreferrer nofollow" href="https://github.com/apache/camel/" title="Collaborate on GitHub"><svg class="brand-icon" focusable="false"><use xlink:href="../../_/img/brand-logos-a2b35bbdec.svg#github"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://camel.zulipchat.com" title="Chat on Zulip"><svg class="brand-icon" focusable="false"><use xlink:href="../../_/img/brand-logos-a2b35bbdec.svg#zulip"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://twitter.com/ApacheCamel" title="Follow Apache Camel on Twitter"><svg class="brand-icon" focusable="false"><use xlink:href="../../_/img/brand-logos-a2b35bbdec.svg#twitter"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://www.linkedin.com/groups/2447439/" title="Apache Camel group on Linkedin"><svg class="brand-icon" focusable="false"><use xlink:href="../../_/img/brand-logos-a2b35bbdec.svg#linkedin"/></svg></a> </div> </div> </footer> <script src="../../_/js/vendor/algoliasearch-c7d08807d6.js"></script> <script src="../../_/js/site-0eeb09d476.js"></script> <script async src="../../_/js/vendor/highlight-621a10fe1b.js"></script> <script async src="../../_/js/vendor/svg4everybody-a0c573f2b9.js"></script> <script async src="../../_/js/vendor/tabs-5aea11bcf5.js" data-sync-storage-key="preferred-tab"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Apache Camel", "url": "https://camel.apache.org", "sameAs": [ "https://twitter.com/ApacheCamel" ], "logo": "../../_/img/logo-d-a567cee6fa.svg", "description": "Apache Camel ™ is a versatile open-source integration framework based on known Enterprise Integration Patterns. Camel empowers you to define routing and mediation rules in a variety of domain-specific languages, including a Java-based Fluent API, Spring or Blueprint XML Configuration files, and a Scala DSL." } </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Apache Camel", "item": "https://camel.apache.org/" }, { "@type": "ListItem", "position": 2, "name": "Camel Components", "item": "https://camel.apache.org/components/4.18.x/index.html" }, { "@type": "ListItem", "position": 3, "name": "Next (Pre-release)", "item": "https://camel.apache.org/components/next/index.html" }, { "@type": "ListItem", "position": 4, "name": "Components", "item": "https://camel.apache.org/components/next/index.html" }, { "@type": "ListItem", "position": 5, "name": "HTTP", "item": "https://camel.apache.org/components/next/http-component.html" }] } </script> </body> </html> |