PUT Request

This node can be used to issue HTTP PUT requests. PUT requests are commonly used to create or replace remote resources.

The node allows you to either send a request to a fixed URL (which is specified in the dialog) or to a list of URLs provided by an optional input table. Every URL will result in one request which in turn will result in one row in the output table. You can define custom request headers in the dialog.

By default the output table will contain a column with the received data, its content type, and the HTTP status code. The node tries to automatically convert the received data into a KNIME data type based on its content type. In case no automatic conversion is possible, binary cells will be created.
You can extract additional response headers into column by defining them in the dialog.

The node supports several authentication methods, e.g. BASIC and DIGEST. Other authentication methods may be provided by additional extensions.

Options

Connection Settings

URL
Select a constant URL or a column from the input table that contains the URLs that you want to request.
Delay (ms)
Here you specify a delay between two consecutive requests, e.g. in order to avoid overloading the web service.
Concurrency
Number of concurrent requests
Ignore hostname mismatches
If checked, the node trusts the server's SSL certificate even if it was generated for a different host.
Trust all certificates
If checked, the node trusts all certificates regardless of their origin or expiration date.
Follow redirects
If checked, the node will follow redirects (HTTP status code 3xx).
Send large data in chunks
Specifies whether HTTP Chunked Transfer Encoding is allowed to be used by the node. If enabled, messages with a large body size are being sent to the server in a series of chunks.
Timeout (s)
Timeout for a single request in seconds
Body
Name of the response body column in the output table

Authentication

Type
The authentication type, e.g. no authentication, BASIC, or DIGEST
Use credentials
Uses the selected credentials instead of username and password provided in the dialog.
Username
The username used for authentication.
Password
The corresponding password used for authentication.

Request Headers

Merge
If you click this button the request headers from the selected template on the left are merged with the already existing header definitions in the table below.
Replace
If you click this button the request headers from the selected template on the left will replace any existing header definitions in the table below.
Header key
The HTTP header key, e.g. Accept or X-Custom-Key. Note that some header keys such as Origin are silently ignored by default for security reasons. You can configure KNIME AP to allow any header key by setting the sun.net.http.allowRestrictedHeaders system property in the knime.ini configuration file to true.
Header value
The value for the header which can be a constant value or a reference to a flow variable, a column, a credential name, or a credential password (see the kind option).
Header kind
The kind of the value specified, which is either a constant value or a reference to a flow variable, a column, a credential name, or a credential password

Request Body

Use column's content as body
Use the selected column's content as the body of the request.
Use constant body
Use the specified content below as the body of the request.

Response Headers

Extract all fields
If checked, all header fields present in the first response are extracted into columns.
Header key
The name of the header to extract.
Header type
The KNIME data type the header should be converted into.

Error Handling

Fail on connection problems (e.g. timeout, certificate errors, …)
This option describes what should happen if there was a problem establishing the connection to the server. The node either fails in execution or outputs status code and error message in the corresponding row.
Server-side errors (HTTP 5XX)
These options describe what should happen if a response with a 5XX status code is received. These status codes usually describe errors on the server side.
Client-side errors (HTTP 4XX)
These options describe what should happen if a response with a 4XX status code is received. These status codes usually describe client-side errors such as an incorrect web address.
Fail node execution or output missing value
This option describes what should happen after a request has failed. The node either fails in execution or outputs a missing value in the row of the output table that corresponds to this request. This option can be set separately for server- and client-side errors.
Retry on error
Specifies whether the node should retry a request if the initial request received a response indicating a server-side error.
Number of retries
The maximum number of retries to perform for server errors (count does not include the initial request).
Retry delay
The delay to apply between the first request and the first retry. For each subsequent retry, the delay is doubled.
Rate-limiting error (HTTP 429)
This status code can be returned by a server to indicate that the rate of incoming requests has been too high.
Pause execution
In case of a rate-limiting error, wait for the set amount of time before retrying the request. Note that this delay is static and does not increase with subsequent attempts, neither does it count as retries for server-side errors.

Input Ports

Icon
Data table containing the variable parameters of the requests.

Output Ports

Icon
Data table containing additional columns from the responses.

Views

This node has no views

Workflows

Further Links

Developers

You want to see the source code for this node? Click the following button and we’ll use our super-powers to find it for you.