HTTP component
The HTTP component is used to send requests to an HTTP(S) endpoint. It includes the message (body and headers) it receives at its input in the request.
Basic configuration
The HTTP component has the following basic configuration options:
URL
The URL to the HTTP(S) endpoint for the request.
Read more about using variables in Dovetail on this reference page.
Generally, when you see this in the body after an HTTP component it indicates something is wrong with the (value of the) header that's used for the URL.
Validate URL
Use the 'Validate Url' button to verify the URL you specified is valid. This doesn't work when using a header or tenant variable for the (dynamic) url, since it's value isn't known at the time of validation.
Sometimes, a URL cannot be properly validated by the frontend or backend. To address this, you can set a header with the name CamelHttpUri
and the desired URL as the value. This header, when set before the HTTP component, will override the URL defined in the configuration.
HTTP Method
The type of HTTP request.
Options
GET
(default)HEAD
POST
PUT
DELETE
PATCH
DELETE with body
OPTIONS
TRACE
The HTTP component filters out headers conform the HTTP/1.1 - RFC 9110 standard.
By default DELETE
doesn't send a body, use DELETE with body
instead.
Authentication method
The authentication method used for the HTTP(S) endpoint.
Options
None
(default)Basic
NTLM
Mutual SSL
Authentication username
The username for the selected authentication method.
- Only available when Authentication method is set to
Basic
orNTLM
.
Authentication password
The password for the selected authentication method.
- Only available when Authentication method is set to
Basic
,NTLM
orMutual SSL
. - When Authentication method is set to
Mutual SSL
this field will set the password of the private certificate.
Authentication preemptive?
Set to true
if the server supports preemptive Basic Authentication, meaning that credentials are sent immediately, even if the server doesn't request them.
- Only available when Authentication method is set to
Basic
.
Authentication domain
The domain for the selected authentication method.
- Only available when Authentication method is set to
NTLM
.
Authentication host
The host for the selected authentication method.
- Only available when Authentication method is set to
NTLM
.
Authentication certificate
The password protected private key/certificate (store) that will be used with the authentication method.
- Only available when Authentication method is set to
Mutual SSL
. - We support files of the PKCS #12 format.
Exclude headers
Sets headers to be excluded from requests made by the HTTP component. Specify multiple headernames by splitting them with a vertical bar |
. Use it to prevent large headers or sensitive data in headers to be sent to the endpoint.
If you use a header for the URL field don't exclude that header here.
Use error route?
By default HTTP errors will be sent to the FailedExchange component in the Error Route. Disable this option if the endpoint has a redirect or you don't want HTTP errors to be handled by the Error Route.
Read more about advanced Error Handling and Management by Exception in the Management by Exception guide.
Advanced configuration
The HTTP component has the following advanced configuration options:
Maximum amount of connections
This setting defines the maximum amount of connections that are available in the connection pool of the component. You can increase it when the endpoint can handle more requests and vice versa.
Maximum amount of connections per route
This setting defines the amount of concurrent connections that can be opened per route. Every URL is seen as a new route. These connections will be taken from the connection pool as defined in the Maximum amount of connections setting. You can increase it when the endpoint can handle more requests and vice versa.
When the URL is static then this setting will limit the amount of connections that can be opened for it even when there are more connections available in the pool. In this case you can set the same amount of connections as the Maximum amount of connections setting.
When the URL is dynamic then there are multiple routes that can be called by the component. In this case it is adviced to set this to a lower value than the Maximum amount of connections setting.
Connection timeout
The timeout (in milliseconds) for establishing a new connection. If the connection is not established within this period, it will be terminated. This ensures the HTTP component will not wait indefinitely for the connection to be established.
- Default: 180000 (3 minutes)
- Minimum: 60000 (1 minute)
Socket timeout
The timeout (in milliseconds) after the connection has been fully established. If no activity occurs within this period, the connection will be closed. This ensures the HTTP component will not try to keep the connection open indefinitely.
- Default: 180000 (3 minutes)
- Minimum: 60000 (1 minute)
Retry failed requests?
Enables the HTTP component's retry mechanism. Requests resulting in a response status of 500
or higher are stored and retried. This is particularly useful for endpoints with unreliable access.
- Use error route? needs to be disabled if you intend to use the retry mechanism.
Retry attempts specifies the number of retry attempts for failed requests and Retry requests interval specifies the interval (in milliseconds) between retry attempts.
If the Transport Type is set to Asynchronous or Queues and you observe timeout errors in your flow, you may need to increase the Components Timeout in the flow settings to allow the retry mechanism sufficient time to complete its operations. Use the following formula to calculate the minimum value for Components Timeout:
Components Timeout = base Timeout value + (HTTP: Retry Attempts × Retry Request Interval) + (repeat for each HTTP component in the flow).
The retry mechanism generates additional exchanges, which are counted in the Flow Manager exchange counters. These exchanges occur even when the flow is idle, as the mechanism periodically checks for failed messages to retry. The frequency of these checks is determined in Retry requests interval setting.
Responses of failed requests
The retry mechanism will add the response of each failed request to the Flow Logs. They are logged at the WARN
level and include the following details:
- HTTP Status
- Flow ID
- API Endpoint
- Interval next retry
- Attempt number
- (Response)Body
- ReponseText
Retry attempts
The number of attempts the requests will be retried. Each retry attempt is shown in the transactions, for example:
- HttpComponent (retry 1)
- Only available when Retry failed requests? is enabled.
Retry requests interval
The interval in milliseconds that determines the time after which messages from failed requests are retried.
- Only available when Retry failed requests? is enabled.
Use managed SSL store?
Enable this setting to decouple the managed SSL store of Dovetail from the HTTP component.
In rare occasions endpoints can experience issues with SSL, try to enable this setting to decouple the managed SSL store.
Custom user agent
This setting allows you to define the user-agent header. When left empty it will use Dovetail/[version]
by default.
In rare occasions requests can be blocked (403 Forbidden) because of the default User-Agent header, try overriding the User-Agent header value to overcome this issue.
Use a custom date header?
Enable this setting to override the automatically set date header and use a custom date header for your request. Set the header name as either date
or Date
.
Custom SSL Certificates
The endpoint you are trying to reach can use an SSL Certificate (HTTPS), this is not a problem for Dovetail as long as it is signed by a default trusted certificate authority. When the endpoint uses a self-signed certificate or a certificate not signed by a default trusted certificate authority, the certificate should be retrieved and imported into Dovetail. This has to be done manually by the support staff of Dovetail, please contact your Dovetail provider when necessary.
When you install a flow that uses such an endpoint Dovetail will run a pre-install check, to check wether the certificate is valid or not. When using a dynamic url this check can be bypassed and it will show up in the flow logging instead.
Testing HTTP requests
Use Webhook.site to generate a unique URL for testing purposes. Any requests sent to this endpoint are displayed instantly in their interface, allowing you to observe exactly how the HTTP component behaves.