- Contents
SOAP API Developer's Guide
Invocation Tools
SOAP HTTP Request
This 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 at http://www.rfc.net/rfc2396.html):
['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 resolution is kept for at most 5 minutes.
Exit Paths
- Success
-
Request was processed successfully (2xx code) and body is valid XML.
- SOAP Fault
-
Response body contains a <Fault> element.
- EmptyResponse
-
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
-
Invalid or unknown hostname (DNS lookup failed)
- Connection Error
-
Unable to establish connection to server: connection failed or existing connection was lost prematurely.
- HTTP Error
-
HTTP error (3xx, 4xx, 5xx) and it was not a SOAP Fault.
- Parse Error
-
Error parsing the returned XML payload (status was 200 or 500).
- Timeout
-
The request timed out.
- Size Limit
-
The response data exceeded the size limit.
- Failure
-
Some other failure. Use ‘XML Get Error Info' on the ‘Response Envelope' to obtain more information.
Parameter |
Dir |
Type |
Remarks |
Request Envelope |
IN |
Node |
XML Node of the SOAP envelope to send. Can be document node or <Envelope> element node. |
URL |
IN |
String |
URL of the request. See remarks for details. |
SOAP Action |
IN |
String |
Optional. 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". |
Additional HTTP Headers |
IN |
String |
Optional. Additional HTTP Headers, separated by LF characters (\n). See remarks for details. |
Selection Namespaces |
IN |
String |
Optional. Selection namespaces to set in response envelope document. Default: Copy selection namespaces from request envelope document. |
Timeout |
IN |
Integer |
Optional. Maximum time the request may take before timing out (in milliseconds). -1 à Never timeout. Default: 60000 (60 seconds) |
Max Response Size |
IN |
Integer |
Optional. 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 |
IN |
Boolean |
Checkbox: False URL is already escaped. True Default. Escape invalid characters in the URL with %<hexvalue> according to RFC2396. |
Always Return Raw Response Body |
IN |
Boolean |
Checkbox: False Default. Do not return raw response body. True Returns the raw data of the response body as string (‘Raw Response Body). |
Response Envelope |
OUT |
Node |
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 |
OUT |
Integer |
HTTP status code of the response (e.g. 200, 500, etc). |
Status Text |
OUT |
String |
HTTP status text of the response (e.g. "OK", "Internal Server Error", etc.) |
Response Headers |
OUT |
String |
HTTP Headers returned by the server, separated by a LF (\n). |
Raw Response Body |
OUT |
String |
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. |