The Post operation sends data to a specified URL. The adapter request with a Post action uses the following formats:
- Single element
- Parent and child
- Entry, key-value
When you use a context item as an input for an adapter request, you must enclose the adapter request in the <request-data> elements. However, when you create a static request, <request-data> is not required and the adapter request starts with the <adapterName-adapter-request> element.
The following table describes the elements of an HTTP adapter request with a Post action.
Use the adapter request XML when you create a custom process by using the Call Adapter activity in BMC Atrium Orchestrator Development Studio.
Elements of an HTTP adapter request with a Post action
| | |
|---|
| Specifies the URL of the content to be sent | |
| Specifies whether to establish a secure connection
Set the value of this element to true when <action> uses HTTPS.
Set the value of this element to false or leave it blank when <action> uses HTTP.
Valid values: true, false (default) | |
<allow-unsigned-certificate> | Specifies whether to allow unsigned certificates from trusted zones
Set the value of this element to true, if you are using self-signed SSL certificates (a common practice).
On ecommerce sites or military installations, if you need to use signed certificates such as Verisign or Thawte, set the value of this element to false (a rare practice).
Valid values: true, false (default) | |
| Specifies whether to install certificates
Set the value of this element to true if you prefer to have security certificates installed automatically (a common practice).
Set the value of this element to false if you prefer to manually export the security certificate from the specified target server and manually import it into the BMC Atrium Orchestrator's local peer's cacerts file (a rare practice).
Valid values: true, false (default) | |
| Specifies the Java Standard Trust Key Store passphrase ErrorWarning - The value of the <passphrase> element is the passphrase for the cacerts certificate stored on the BMC Atrium Orchestrator local peer (CDP or AP) and not the specified target host.
- Changing the passphrase can be tricky and might destroy the cacerts security file integrity.
Verify the cacerts passphrase using the following command in UNIX or Linux:
$ /opt/bmc/ao/cdp/jvm/bin/keytool -list -keystore /opt/bmc/ao/cdp/jvm/lib/security/cacerts
Default value: changeit
| |
| Specifies the file name and local path of the file to be sent to the URL
Examples: For Windows: C:\\adapters\\testfile.txt For UNIX or Solaris: //home//user//testfile.txt | |
| Specifies the content type of the file to be uploaded
Default value: Plain | Conditional; used if the adapter request contains a <file-path> element |
| Specifies the user name to be used for basic authentication | |
| Specifies the password corresponding to the user name provided for basic authentication | |
| Indicates the data type for the adapter response
The JSON string in the response is parsed to XML only if <Content-Type> is set to application/json and <data-format> is set to XML.
Valid values: XML, HTML (default) | |
| Indicates whether to use NTLM authentication for the target server for the specified user credentials
The adapter supports both NTLMv1 and NTLMv2 authentication.
Valid values: true, false (default)
If the value of the parameter is true, the adapter uses NTLMv1 or NTLMv2 authentication (based on the server configuration) to authenticate the user. Else, the adapter uses basic authentication. | |
| Contains the data to be posted
Data can be used in three ways: - Simple text form
- Parent and child format
- Key and entry format
| |
| Specifies the supporting CharSet
Also called character set, it includes identifiers describing a series of universal characters.
Note: If you do not specify the supporting character set, the adapter response is parsed based on the character set in the HTTP response header. | |
<http-connection-properties> | Specifies an XML document that includes HTTP connection properties, which contain the <user-name> and <password> elements for basic or NTLM authentication
The XML document also includes information such as content-type in the HTTP request header before executing the HTTP request.
Note: The user name and password properties are not set in the request header and are case sensitive. | |
| Specifies the user name required for basic or NTLM authentication specified in <http-connection-properties> | |
| Specifies the password corresponding to the user name specified in <http-connection-properties> | |
| Contains the elements that specify information about the public key (X.509 certificate) and the private key that are used for the digital signature
Note: If you specify <signature-properties> in the adapter configuration and an adapter request, the values in the request override the values in the configuration. The <signature-properties> element can contain the mode attribute that specifies the format in which the public (X.509 certificate) and private keys are provided for signing the HTTP request.
You can provide the keys using one of the following formats: - Java Keystore (JKS)
- Privacy Enhanced Mail (PEM)
- Definite Encoding Rules (DER) files
- Base64-encoded PEM
Valid values: - <signature-properties mode="keystore"> (default)
- <signature-properties mode="key-files">
- <signature-properties mode="key-data">
| |
| Specifies the path to the JKS that contains the client certificate | Conditional; required when <signature-properties mode="keystore"> |
| Specifies the password of the key contained in the JKS
Note: If you do not specify <key-password>, then the value of <keystore-password> is used as the key password. | |
| Specifies the password to the JKS | Conditional; required when <signature-properties mode="keystore"> |
| Specifies the name of the alias in the JKS that identifies the Public Key Certificate (PKC) that the web server uses to authenticate the client
Note: The value of the <alias> element is verified only when <install-certificate> is set to true and <allow-unsigned-certificate> is set to false. | Conditional; required when <signature-properties mode="keystore"> |
| Specifies the file containing the private key that is used to sign the HTTP request
The adapter supports the following formats: | Conditional; required when <signature-properties mode="key-files"> |
| Specifies the file containing the public key (X509 Certificate)
The adapter supports the following formats: | Conditional; required when <signature-properties mode="key-files"> |
| Contains an XML file specifying the private key in an Base64-encoded PEM format
For example: <private-key-data> --- BEGIN PRIVATE KEY ---- MIICdQIBADANBgkqhkiG9w0 BAQEFAASCAl8wggJbAgEAAo GBAKomKro6VbW4PeQtUhNz ZpSH26vbBTBtH1r4EjnIv4vnh SyyA62ewpROVNn0Spvjo BFwE88HcX3tXym/zbVgtd Pke9K+SYHP6CWdiLqn ... --- END PRIVATE KEY ---</private-key-data> | Conditional; required when <signature-properties mode="key-data"> |
| Contains an XML file specifying the public key (X509 Certificate) in an Base64-encoded PEM format
For example: <certificate-data> --- BEGIN CERTIFICATE --- MIICdzCCAeCgAwIBAgIFXseN1xYwDQYJKoZIhvcNAQEFBQ AwUzELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFtYXpvbi5jb20x DDAKBgNVBAsTA0FXUzEhMB8GA1UEAxMY ... --- END CERTIFICATE ---</certificate-data> | Conditional; required when <signature-properties mode="key-data"> |
| Specifies whether the adapter should treat the input data in the request and the data received in the adapter response as a JavaScript Object Notation (JSON) string
If <enable-json-conversion> is set to true, the input data in the request (XML format) is converted to a JSON string after parsing.
Valid values: true, false (default)
Notes:
- If you specify <enable-json-conversion> in the adapter configuration and the adapter request, the value in the adapter request overrides the value in the configuration.
- The response maintains the order in which the fields are specified in the request.
| |
| Specifies whether the adapter redirects a URL request to the changed URL location
Valid values: true (default), false
Note: If you specify <enable-redirects> in the adapter configuration and an adapter request, the values in the request override the values in the configuration. | |
InformationRecommendation
The HTTP adapter supports both <httpAdapterRequest> and <http-adapter-request> tags for an adapter request; however, only the <httpAdapterResponse> tag is supported for an adapter response.
BMC recommends that you use the <httpAdapterRequest> root tag for the adapter request.
The HTTP adapter generates a response to the HTTP request (URL) defined in the adapter request. The response format depends on <Content-Type> of the HTTP server response.
Elements of an HTTP adapter response to a request with a Post action
| |
|---|
| Contains the <status> element |
| Specifies the status of the adapter request
Valid values: success, error |
| Contains the elements in the <status-line> element |
| Specifies the numeric status code for the response
Code 10000 is returned for a connection and read timeout, or if the web service is down. |
| Specifies the reason associated with the code |
| Contains the elements in the <header-lines> element |
| Specifies the specific field name and value returned from the adapter request
The element name is variable, dependent on the field returned. |
| Contains the message body of the HTTP response in CDATA format |
XML sample of an HTTP adapter request with a Post action in a simple text data format
<httpAdapterRequest>
<http-connection-properties/>
<action>http://10.128.249.21:8080/httpclientoperations/HttpClientServlet
</action>
<use-ssl-certificate>false</use-ssl-certificate>
<install-certificate>false</install-certificate>
<allow-unsigned-certificate>false</allow-unsigned-certificate>
<passphrase>changeit</passphrase>
<character-set>shift_jis</character-set>
<data>This is the sample String.</data>
</httpAdapterRequest>
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
XML sample of the HTTP adapter response with a Post action in parent-child format
<httpAdapterResponse>
<metadata>
<status>success</status>
</metadata>
<status-line>
<code>200</code>
<reason>OK</reason>
</status-line>
<header-lines>
<Server>Apache-Coyote/1.1</Server>
<Content-Type>text/plain;charset=ISO-8859-1</Content-Type>
<Content-Length>444</Content-Length>
<Date>Mon, 05 Apr 2010 09:33:50 GMT</Date>
</header-lines>
<message-body>
<Html>
<Title>Testing Application for HTTP Adapter</Title>
<Head></Head>
<Title>Testing Application for HTTP Adapter</Title>
<Head></Head>
<Body>Hi, I am inside the doPost() Method of the EchoServlet,
<br><br>
<br><br>
<br><br> Query String : null
<br><br><BR><BR>
XML Text :
<parent>
<child1>Child 1 Data</child1>
<child2>Child 2 Data</child2>
</parent>
<Center> Copyrights ©, Developed By Test User </Center>
</Body>
</Html>
</message-body>
</httpAdapterResponse>
WarningNote
<script> and <style> elements are deleted from the HTTP response for XHTML data format.
HTTP adapter request with a Post action in entry and key-value format
<httpAdapterRequest>
<action>https://${Https_RemoteMachine}:${httpsPort}/HttpTestApp//EchoServlet
</action>
<use-ssl-certificate>true</use-ssl-certificate>
<install-certificate>true</install-certificate>
<allow-unsigned-certificate>true</allow-unsigned-certificate>
<character-set>shift_jis</character-set>
<data-format>xhtml</data-format>
<data>
<entry>
<key>Name</key>
<value>
<foo>
<bar>1</bar>
<bar>2</bar>
</foo>
</value>
</entry>
<entry>
<key>Credit Card</key>
<value>1234</value>
</entry>
<entry>
<key>Debit Card</key>
<value>12345</value>
</entry>
</data>
<http-connection-properties>
<user-name>admin</user-name>
<password>admin123</password>
</http-connection-properties>
</httpAdapterRequest>
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
XML sample of the HTTP adapter response that contains a JSON string in <message-body> of an HTML response before parsing
<httpAdapterResponse>
<metadata>
<status>success</status>
</metadata>
<status-line>
<code>200</code>
<reason>OK</reason>
</status-line>
<header-lines>
<Transfer-encoding>chunked</Transfer-encoding>
<Content-type>text/html</Content-type>
</header-lines>
<message-body>
<html lang="en-US">
<head>
<title>BBDA API</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
{"job-approval":{"result":"approve","detail":"dsd"}}
<h1>Accepted request</h1>
</body>
</html>
</message-body>
</httpAdapterResponse>
WarningNote
The JSON string is processed only if it is contained in the <body>, <message-body>, or <non-xml-data-response> elements.
XML sample of the HTTP adapter response that contains a JSON string in <message-body> of an HTML response after parsing
<httpAdapterResponse>
<metadata>
<status>success</status>
</metadata>
<status-line>
<code>200</code>
<reason>OK</reason>
</status-line>
<header-lines>
<Transfer-encoding>chunked</Transfer-encoding>
<Content-type>text/html</Content-type>
</header-lines>
<message-body>
<html lang="en-US">
<head>
<title>BBDA API</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<job-approval>
<detail>dsd</detail>
<result>approve</result>
</job-approval>
<h1>Accepted request</h1>
</body>
</html>
</message-body>
</httpAdapterResponse>
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
The [expand] macro is a standalone macro and it cannot be used inline.
XML sample of the HTTP adapter response when the input is XML and the output is JSON converted to XML data
<httpAdapterResponse>
<metadata>
<status>success</status>
</metadata>
<status-line>
<code>200</code>
<reason>OK</reason>
</status-line>
<header-lines>
<Server>Apache-Coyote/1.1</Server>
<Content-Type>application/json</Content-Type>
<Content-Length>128</Content-Length>
<Date>Tue, 31 Jul 2012 10:02:22 GMT</Date>
</header-lines>
<message-body>
<employees>
<e>
<age>23</age>
<name>User1</name>
</e>
<e>
<age>22</age>
<name>User2</name>
</e>
<e>
<age>22</age>
<name>User3</name>
</e>
<e>
<age>22</age>
<name>User4</name>
</e>
</employees>
</message-body>
</httpAdapterResponse>