An HTTP client processor which converts FlowFile attributes to HTTP headers, with configurable HTTP method, url, etc.
http, https, rest, client
In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, whether a property supports the NiFi Expression Language, and whether a property is considered "sensitive", meaning that its value will be encrypted. Before entering a value in a sensitive property, ensure that the nifi.properties file has an entry for the property nifi.sensitive.props.key.
Name | Default Value | Allowable Values | Description |
---|---|---|---|
HTTP Method | GET | HTTP request method (GET, POST, PUT, DELETE, HEAD, OPTIONS). Arbitrary methods are also supported but will be sent without a message body. Supports Expression Language: true | |
Remote URL | Remote URL which will be connected to, including scheme, host, port, path. Supports Expression Language: true | ||
SSL Context Service | Controller Service API: SSLContextService Implementation: StandardSSLContextService | The SSL Context Service used to provide client certificate information for TLS/SSL (https) connections. | |
Connection Timeout | 5 secs | Max wait time for connection to remote service. | |
Read Timeout | 15 secs | Max wait time for response from remote service. | |
Include Date Header | True |
| Include an RFC-2616 Date header in the request. |
Follow Redirects | True |
| Follow HTTP redirects issued by remote server. |
Attributes to Send | Regular expression that defines which attributes to send as HTTP headers in the request. If not defined, no attributes are sent as headers. Also any dynamic properties set will be sent as headers. The dynamic property key will be the header key and the dynamic property value will be interpreted as expression language will be the header value. | ||
Basic Authentication Username | The username to be used by the client to authenticate against the Remote URL. Cannot include control characters (0-31), ':', or DEL (127). | ||
Basic Authentication Password | The password to be used by the client to authenticate against the Remote URL. Sensitive Property: true | ||
Proxy Host | The fully qualified hostname or IP address of the proxy server | ||
Proxy Port | The port of the proxy server | ||
Put Response Body In Attribute | If set, the response body received back will be put into an attribute of the original FlowFile instead of a separate FlowFile. The attribute key to put to is determined by evaluating value of this property. Supports Expression Language: true | ||
Max Length To Put In Attribute | 256 | If routing the response body to an attribute of the original (by setting the "Put response body in attribute" property or by receiving an error status code), the number of characters put to the attribute value will be at most this amount. This is important because attributes are held in memory and large attributes will quickly cause out of memory issues. If the output goes longer than this value, it will be truncated to fit. Consider making this smaller if able. | |
Use Digest Authentication | false |
| Whether to communicate with the website using Digest Authentication. 'Basic Authentication Username' and 'Basic Authentication Password' are used for authentication. |
Always Output Response | false |
| Will force a response FlowFile to be generated and routed to the 'Response' relationship regardless of what the server status code received is or if the processor is configured to put the server response body in the request attribute. In the later configuration a request FlowFile with the response body in the attribute and a typical response FlowFile will be emitted to their respective relationships. |
Trusted Hostname | Bypass the normal truststore hostname verifier to allow the specified remote hostname as trusted. Enabling this property has MITM security implications, use wisely. Will still accept other connections based on the normal truststore hostname verifier. Only valid with SSL (HTTPS) connections. | ||
Add Response Headers to Request | false |
| Enabling this property saves all the response headers to the original request. This may be when the response headers are needed but a response is not generated due to the status code received. |
Dynamic Properties allow the user to specify both the name and value of a property.
Name | Value | Description |
---|---|---|
Header Name | Attribute Expression Language | Send request header with a key matching the Dynamic Property Key and a value created by evaluating the Attribute Expression Language set in the value of the Dynamic Property. Supports Expression Language: true |
Name | Description |
---|---|
Retry | The original FlowFile will be routed on any status code that can be retried (5xx status codes). It will have new attributes detailing the request. |
No Retry | The original FlowFile will be routed on any status code that should NOT be retried (1xx, 3xx, 4xx status codes). It will have new attributes detailing the request. |
Response | A Response FlowFile will be routed upon success (2xx status codes). If the 'Output Response Regardless' property is true then the response will be sent to this relationship regardless of the status code received. |
Failure | The original FlowFile will be routed on any type of connection failure, timeout or general exception. It will have new attributes detailing the request. |
Original | The original FlowFile will be routed upon success (2xx status codes). It will have new attributes detailing the success of the request. |
Name | Description |
---|---|
invokehttp.status.code | The status code that is returned |
invokehttp.status.message | The status message that is returned |
invokehttp.response.body | In the instance where the status code received is not a success (2xx) then the response body will be put to the 'invokehttp.response.body' attribute of the request FlowFile. |
invokehttp.request.url | The request URL |
invokehttp.tx.id | The transaction ID that is returned after reading the response |
invokehttp.remote.dn | The DN of the remote server |
user-defined | If the 'Put Response Body In Attribute' property is set then whatever it is set to will become the attribute key and the value would be the body of the HTTP response. |