Skip to main content
Version: 4.17.1

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.

tip

Read more about using variables in Dovetail on this reference page.

Please stand by while configuration is in progress

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.

header for URL

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
header removal

The HTTP component filters out headers conform the HTTP/1.1 - RFC 9110 standard.

tip

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.

note

Authentication password

The password for the selected authentication method.

note

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.

note

Authentication domain

The domain for the selected authentication method.

note

Authentication host

The host for the selected authentication method.

note

Authentication certificate

The password protected private key/certificate (store) that will be used with the authentication method.

note

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.

using a url header

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.

tip

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.

note
  • 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.

Components Timeout adjustment

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)
note

Retry requests interval

The interval in milliseconds that determines the time after which messages from failed requests are retried.

note

Use managed SSL store?

Enable this setting to decouple the managed SSL store of Dovetail from the HTTP component.

warning

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.

warning

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.

Last update on Nov 27, 2024