Feedback

  • Contents
 

SOAP HTTP Request

This SOAP tool issues an HTTP request to the specified URL with the SOAP request envelope as payload. The response body is parsed and returned as response envelope.

The URL may have the following format (also see RFC2396):

['http://'] <host> [':' <port>] ['/' <path> ['?' <query>]]

The (UNICODE) string passed as URL is converted to UTF-8 and invalid characters in the resulting string are escaped according to RFC2396 (%<hexvalue>).

The structure of the request sent to the host will be as follows:

'POST ' <path> ' HTTP/1.1' CRLF
'Host: ' <host> [':' <port>] CRLF
'Content-Type: text/xml; charset="' <charset> '"' CRLF
'Content-Length: ' <bodysize> CRLF
'SOAPAction: "' <SOAPAction> '"' CRLF
[<additional headers>]
CRLF
<SOAP envelope body>

The ‘Additional HTTP Headers’ parameter can be used to supply additional HTTP header elements. The headers must have the form {<name> ' :' <value> [CR] LF }* The header elements in this argument have precedence over the default headers generated by the tool. Thus, if the ‘Additional HTTP Headers’ parameter contains a ‘Content-Length header, it will be used (with potentially unexpected results, of course).

The response body will be parsed and returned as ‘Response Envelope’ if the content type is text/xml. Otherwise, the body is returned in ‘Raw Response Body’ and an empty document node is returned as ‘Response Envelope’. This document node can be queried for information about what went wrong.

This tool maintains a global cache of the most recently resolved and successfully connected host addresses to improve performance. Each address is kept for at most 5 minutes.

Inputs

Request Envelope

XML Node of the SOAP envelope to send. Can be document node or <Envelope> element node.

URL

URL of the request. See above for details.

SOAP Action

String to be passed as SOAPAction header. The string passed here may contain the following substitution tags:

%1 Namespace of the first child element of the <Body> element (RPC method).

%2 Base name of the first child element of the <Body> element (RPC method).

%{ Treat everything up to closing ‘}’ as XPath query to be run against the ‘Request Envelope’ node and substitute the value of the first node found into the SOAPAction string.

%%%’ character

If this argument is not specified, the following mask will be used as default: “%1#%2”.

The value “NONE” may be specified to suppress addition of the SOAPAction header.

Additional HTTP Headers

Additional HTTP Headers, separated by LF characters (\n). Optional. See above for details.

Selection Namespaces

Selection namespaces to set in response envelope document. Optional.

Default: Copy selection namespaces from request envelope document.

Timeout Value

Maximum time the request may take before timing out (in milliseconds). A value of -1 is interpreted as an infinite timeout period.

Default: 60000 (60 seconds)

Max Response Size

Size limit of the response data. If the data returned by the server exceeds this limit, the data is not processed and the tool fails. This prevents denial of service attacks. Default: 1MB.

Escape URL

Leave this box checked to escape invalid characters in the URL with %<hexvalue> according to RFC2396. Clear this box if the URL is already escaped.

Always Return Raw Response Body

Check this box to return the raw data of the response body as string (‘Raw Response Body). Leave this box cleared if you do not want to return raw response data.

Outputs

Response Envelope

Document node of the response envelope. If an error occurred, an empty document is returned which can be queried using ‘XML Get Error Info’.

Status Code

HTTP status code of the response (e.g. 200, 500, etc).

Status Text

HTTP status text of the response (e.g. “OK”, “Internal Server Error”, etc).

Response Headers

HTTP Headers returned by the server, separated by a LF (\n).

Raw Response Body

Raw data of the response body (data that is parsed as response envelope). This string is only returned if the ‘Always Return Raw Response Body’ parameter is True, an error occurs, or the response content type is not XML.

Exit Paths

Success

This path is taken if the response contains valid SOAP envelope element(s) and the body is valid XML.

SOAP Fault

This path is taken if the response body contains a <Fault> element.

EmptyResponse

This path is taken if the response body was empty and the HTTP status code was 2xx. Some servers use this to signal success for methods with no result (void).

Unknown Host

This path is taken if an invalid or unknown hostname is used (DNS lookup failed).

Connection Error

This path is taken if it is unable to establish connection to server: connection failed or existing connection was lost prematurely.

HTTP Error

This path is taken if there was an HTTP error (3xx, 4xx, 5xx) and it was not a SOAP Fault.

Parse Error

This path is taken if there was an error parsing the returned XML payload (status was 200 or 500).

Timeout

This path is taken if the request timed out.

Size Limit

This path is taken if the response data exceeded the size limit.

Failure

This path is taken for any other failure. Use ‘XML Get Error Info’ on the ‘Response Envelope’ to obtain more information.