This topic contains the following sections:
Use the HTTPRequest node to interact with a Web service, using all or part of the input message as the request sent to that service. You can also configure the node to create a new output message from the contents of the input message augmented by the contents of the Web service response before you propagate the message to subsequent nodes in the message flow.
Depending on the configuration, this node constructs an HTTP or an HTTP over SSL (HTTPS) request from the specified contents of the input message and sends this to the Web service. It receives the response from the Web service, and parses the response for inclusion in the output tree. It generates HTTP headers if these are required by your configuration.
You can use this node in a message flow that does not contain an HTTPInput or HTTPReply node.
The HTTPRequest node handles messages in the following message domains:
The HTTPRequest node is represented in the workbench by the following icon:
The HTTPRequest node can be used in any message flow that needs to send an HTTP request. The most common example of this is a message flow that invokes a Web service. For information on Web service applications, see Web service applications.
Because the node interacts directly with an external service using TCP/IP, it can experience the following types of error:
If the node detects these errors, it generates an exception, populates the exception list with the error information received, and routes the input message unchanged to the failure terminal.
The reply will be output as a BLOB, as the node cannot determine what format the reply will be. If you have not configured this node to handle redirection, messages with a redirection status code (3xx) are also handled in this way.
The HTTPRequest node treats the 100 series status codes as a continue response, discards the current response and waits for another response from the Web server.
The 200 series status codes are treated as success and the response is routed to the out terminal of the node, whilst following the settings on the various tabs on the node for the format of the output message generated.
The 300 series status codes are for redirection. If the Follow Redirection property is selected, the node does not resend the request to the new specified in the response received. If the Follow Redirection property is not selected, the codes is treated as an error as described in the section above on handling errors.
The 400 and 500 series status codes are errors, and are treated as described section above on handling errors.
If the Replace input message with web-service response property, or Replace input with error property is selected, the header for the input message, that is, the header that belongs to the message as it arrives at the IN terminal of the HTTPRequest node, is not e propagated with the message that leaves the HTTPRequest node. However, if one of the properties that specifies a location in the message tree is specified, the input message’s headers are propagated.
The HTTPResponse header, which contains the headers that are returned by the remote Web service, is the first header in the message that is propagated from the node, after properties. This is true regardless of the options that are chosen. Therefore, if you want the reply from the HTTPRequest node to be put to an MQ queue, you must manipulate the headers so that an MQMD is the first header (after properties).
If you are replacing the input message with a response, you can copy the input message's MQMD to the Environment tree before the HTTPRequest node, and then copy it back into the message tree after the HTTPRequest node. If you are specifying a location for the response, in order to maintain existing input message headers, you must move or remove the HTTP Response header so that the MQMD is the first header.
SET OutputRoot = InputRoot; SET OutputRoot.HTTPResponseHeader = NULL;
SET OutputRoot = InputRoot; DECLARE HTTPHeaderRef REFERENCE TO OutputRoot.HTTPResponseHeader; DETACH HTTPHeaderRef; ATTACH HTTPHeaderRef TO OutputRoot.MQMD AS NEXTSIBLING;
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.Method = 'GET';
When you have put an instance of the HTTPRequest node into a message flow, you can configure it. Right-click the node in the editor view and click Properties. The node's basic properties are displayed.
All mandatory properties for which you must enter a value (those that do not have a default value defined) are marked with an asterisk on the properties dialog.
Configure the HTTPRequest node as follows:
The first two options provide you with dynamic methods to set a URL for each input message as it passes through the message flow. If you want to use either of these options, you must include a Compute node in the message flow before the HTTPRequest node to create and initialize the required value.
The third option provides a value that is fixed for every message received in this node. You must set this property to contain a default setting that is used if the other fields have not been created, or contain a null value. If either field contains a value, the setting of this property is ignored. The Web Service URL property must contain a valid URL or the deploy will fail. You must also ensure that the value that you set in X-Original-HTTP-URL or the LocalEnvironment.Destination.HTTP.RequestURL is also a valid URL; if it is not, the node generates an exception and the message is propagated to the failure terminal.
If a URL begins http:// the request node makes an HTTP request to the specified URL. If the URL begins https:// the request node makes an HTTP over SSL (HTTPS) request to the specified URL, using the parameters that are specified in the SSL tab on the node.
If you select HTTP/1.1, you have the option of also using HTTP/1.1 keep-alive.
Note that both ends of an SSL connection must agree on the protocol to use, so the chosen protocol must be one that the remote server can accept.
If you want the request message to contain a subset of the input message, clear this check box and complete the property Request message location in tree.
You can enter any valid ESQL field reference, including expressions within the reference. For example, enter:
InputRoot.XMLNS.ABC
If you select the Use whole input message as request check box, this property is ignored.
When the appropriate message tree content is parsed to create a bit stream, the message properties (domain, set, type, and format) associated with the input message body and stored in the Properties folder are used.
If you want the Web service response message to be included in the output message with part of the input message content, clear this check box and complete the property Response message location in tree. If you clear this property, the node copies the input message to the output message and writes the Web service response message over the output message content at the specified location (the input message itself is not modified).
You can enter any valid ESQL field reference, including expressions within the reference, and including new field references (to create a new node in the message tree for the response). For example, enter:
OutputRoot.XMLNS.ABC.DEFor
Environment.WSReply
If you select the Replace input message with web-service response check box, this property is ignored.
When the response bit stream is parsed to create message tree contents, the message properties (domain, set, type, and format) that you have specified in the node Default properties (described below) are used.
If you do not want the node to generate an HTTPRequestHeader for the request message, clear the Generate default HTTP headers from input check box (the default setting is selected). To control the contents of the HTTPRequestHeader that is included in the request message, include a Compute node that adds an HTTPRequestHeader to the input message before this HTTPRequest node in the message flow, and clear this check box.
It also adds the Web service headers shown in the following table, with default values, if these are not present in the HTTPRequestHeader or the HTTPInputHeader.
Header | Default value |
---|---|
SOAPAction | "" (empty string) |
Content-Type | text/xml; charset=utf-8 |
Host | The hostname to which the request is to be sent |
It also adds the optional header Content-Length with the correct calculated value, even if this is not present in the HTTPRequestHeader or the HTTPInputHeader.
If you want the Web service error message to be included in the output message with part of the input message content, clear this check box and complete the property Error message location. If you clear this property, the node copies the input message to the output message and writes the Web service error message over the output message content at the specified location (the input message itself is not modified).
You can enter any valid ESQL field reference, including expressions within the reference and new field references (to create a new node in the message tree for the response). For example, enter:
OutputRoot.XMLNS.ABC.DEFor
Environment.WSError
If you select the Replace input with Error check box, this property is ignored.
If an error message is returned by the Web service, the values of these properties are ignored, and the message is parsed by the BLOB parser.
Leave Message Set blank for XML, XMLNS, XMLNSC, JMS, MIME, and BLOB parsers.
Leave Message Type blank for XML, XMLNS, XMLNSC, JMS, MIME, BLOB, and IDOC parsers.
Leave Message Format blank for XML, XMLNS, XMLNSC, JMS, MIME, and BLOB parsers.
For more details refer to Validating messages and Validation properties for messages in the MRM domain.
Click Cancel to close the dialog and discard all the changes that you have made to the properties.
Connect the out, error, or failure terminal of this node to another node in this message flow to process the message further, process errors, or send the message to an additional destination. If you do not connect the error terminal, the message is discarded. If you do not connect the failure terminal, the broker provides default error processing, described in Handling errors in message flows.
The HTTPRequest node terminals are described in the following table.
Terminal | Description |
---|---|
In | The input terminal that accepts a message for processing by the node. |
Failure | The output terminal to which the message is routed if a failure is detected during processing in the node. |
Out | The output terminal to which the message is routed if it represents successful completion of the Web service request, and if further processing is required within this message flow. |
Error | The output terminal to which messages that include an HTTP status code that is not in the range 200 through 299, including redirection codes (3xx) if you have not set property Follow HTTP redirection. |
The following tables describe the node properties; the column headed M indicates whether the property is mandatory (marked with an asterisk on the properties dialog if you must enter a value when no default is defined), the column headed C indicates whether the property is configurable (you can change the value when you add the message flow to the bar file to deploy it).
The HTTPRequest node Basic properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Web Service URL | Yes | Yes | The URL for the Web service. You must provide this in
the form http://<hostname>[:<port>]/[<path>] where
|
|
Request Timeout | Yes | No | 120 | The time in seconds that the node waits for a response from the Web service. The valid range is 1 to (231)-1. You cannot enter a value that represents an unlimited wait. |
HTTP(S) Proxy Location | No | Yes | The proxy server to which requests are sent. This must be in the form hostname:port. | |
Follow HTTP(S) redirection. | No | No | Cleared | Whether HTTP redirections are followed. If you select the check box, redirections are followed. If you clear this check box, redirections are not followed. |
HTTP Version | No | Yes | 1.0 | The HTTP version to use for requests. Valid values are 1.0 and 1.1. |
Enable HTTP/1.1 Keep-Alive | No | Yes | Selected (if HTTP Version is 1.1) | Use HTTP/1.1 Keep-Alive |
The HTTPRequest node SSL properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Protocol | No | Yes | SSL | The SSL protocol to use when making an HTTPS request. |
Allowed SSL Ciphers | No | Yes | A comma-separated list of ciphers to use when making an SSL request. The default value of an empty string means use all available ciphers. |
The HTTPRequest node Advanced properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Use whole input message as request | No | No | Selected | Whether the whole input message body is to be passed to the Web service. If you select this check box, this action is performed. If you clear this check box, you must specify Request message location in tree. |
Request message location in tree | Yes | No | InputRoot | The start location from which the bit stream is created for sending to the Web service. This property takes the form of an ESQL field reference. |
Replace input message with web-service response | No | No | Selected | Whether the Web service response message replaces the copy of the input message as the content of the output message created. If you select this check box, this action is performed. If you clear this check box, you must specify Response message location in tree. |
Response message location in tree | Yes | No | OutputRoot | The start location at which the parsed elements from the Web service response bit stream are stored. This property takes the form of an ESQL field reference. |
Generate default HTTP headers from input | No | No | Selected | Whether an HTTPRequestHeader is generated. If you select this check box, this action is performed. If you clear this check box, a valid HTTPRequestHeader must exist in the input message. |
The HTTPRequest node Error properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Replace Input with Error | No | No | Selected | Whether the input message content is to be replaced by the error message content. If you select this check box, the action is performed. If you clear this check box, you must specify Error message location. |
Error message location | Yes | No | OutputRoot | The start location at which the parsed elements from the Web service error bit stream are stored. This property takes the form of an ESQL field reference. |
The HTTPRequest node Default properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Message Domain | No | No | The domain that will be used to parse the response message that is received from the Web service. | |
Message Set | No | No | The name or identifier of the message set in which the response message is defined. | |
Message Type | No | No | The name of the response message. | |
Message Format | No | No | The name of the physical format of the response message. |
The Validation properties of the HTTPRequest node are described in the following table.
Refer to Validation properties for messages in the MRM domain for a full description of these properties.
Property | M | C | Default | Description |
---|---|---|---|---|
Validate | No | Yes | None | Whether validation takes place. Valid values are None, Content and Value, Content, and Inherit. |
Failure Action | No | No | Exception | What happens if validation fails. You can set this property only if you set Validate to Content or Content and Value. Valid values are User Trace, Local Error Log, Exception, and Exception List. |
Include All Value Constraints | No | No | Selected | This property cannot be edited. The default action, which is indicated by the check box being selected, is that basic value constraint checks are included in Content and Value validation. |
Fix | No | No | None | This property cannot be edited. |
The properties of the General Message Options for the HTTPRequest node are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Parse Timing | No | No | On Demand | This property controls when an input message is parsed.
Valid values are On Demand, Immediate, and Complete. Refer to Parsing on demand for a full description of this property. |
Use MQRFH2C Compact Parser for MQRFH2 Domain | No | No | Cleared | This property controls whether the MQRFH2C Compact Parser, instead of the MQRFH2 parser, is used for MQRFH2 headers. |
The properties of the XMLNSC Parser Options for the HTTPRequest node are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Use XMLNSC Compact Parser for XMLNS Domain | No | No | Cleared | ![]() ![]() |
Mixed Content Retain Mode | No | No | None | This property controls whether the XMLNSC parser creates elements in the message tree when it encounters mixed text in an input message. Valid values are None and All. Selecting All means that elements are created for mixed text. Selecting None means that mixed text is ignored and no elements are created. |
Comments Retain Mode | No | No | None | This property controls whether the XMLNSC parser creates elements in the message tree when it encounters comments in an input message. Valid values are None and All. Selecting All means that elements are created for comments. Selecting None means that comments are ignored and no elements are created. |
Processing Instructions Retain Mode | No | No | None | This property controls whether the XMLNSC parser creates elements in the message tree when it encounters processing instructions in an input message. Valid values are None and All. Selecting All means that elements are created for processing instructions. Selecting None means that processing instructions are ignored and no elements are created. |
The HTTPRequest node Description properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Short Description | No | No | A brief description of the node. | |
Long Description | No | No | Text that describes the purpose of the node in the message flow. |
Notices |
Trademarks |
Downloads |
Library |
Support |
Feedback
![]() ![]() |
ac04595_ |