/n software Adapters for BizTalk

Questions / Feedback?

HTTP Adapter

Properties   Configuration Settings  

The HTTP component provides a flexible HTTP client to send and receive data to web servers.

Remarks

The HTTP adapter implements a highly configurable HTTP client that is capable of sending and receiving data to and from web servers. Support includes issuing simple GET requests as well as defining custom form and file parameters to be POSTed to server. URL defines the location to which the request is made.

The adapter supports HTTP 1.0, 1.1, and 2.0 which can be configured in the HTTPVersion property.

The HTTPMethod property defines the HTTP method to use. Possible values are:

  • DELETE
  • GET (default)
  • HEAD
  • POST
  • PUT
  • TRACE

Getting Data From the Server

In both the Send Adapter and the Receive Adapter if HTTPMethod is set to GET the request is issued to the server specified by URL. Additional custom headers may be specified in the request by setting OtherHeaders.

The response received by the adapter will be used as the body of the submitted BizTalk message. In the case of the Send Adapter the response message is only returned when the adapter is configured in a solicit response port (recommended). The HTTP headers of the response are available via the TransferredHeaders context property of the message.

Sending Data To the Server

When HTTPMethod is set to POST or PUT data will be sent to the server. The RequestParams property specifies one or more parameters to add to the POST or PUT request. This property is only applicable when the HTTPMethod property is set to POST or PUT.

To specify additional parameters set this property to one or more name value pairs. Set one pair on each line. For instance:

name1=value1
name2=value2

The adapter will format a request with parameters slightly differently depending on whether the request is made by the Send or Receive adapter.

Note: To have complete control over the data being sent set PostData instead.

Send Adapter

When sending a POST or PUT request the BizTalk message body will always be used as the last parameter regardless of the values specified in RequestParams. If no values are set here then a request will be made with only one parameter which is the content of the message. Several examples and additional details follow.

Basic Example:

Setting the RequestParams to a value of:

name1=value1
name2=value2

Will result in a HTTP request like this:

POST / HTTP/1.1
Host: www.nsoftware.com
Accept-Encoding: gzip, deflate
User-Agent: IPWorks HTTP Component - www.nsoftware.com
Connection: close
Content-Type: multipart/form-data; boundary="boundaryV+iTxA=="
Content-Length: 335

--boundaryV+iTxA==
Content-Disposition: form-data; name="name1"
Content-Type: text/plain
	
value1
--boundaryV+iTxA==
Content-Disposition: form-data; name="name2"
Content-Type: text/plain
	
value2
--boundaryV+iTxA==
Content-Disposition: form-data
Content-Type: application/octet-stream
	
message body
--boundaryV+iTxA==--

Notice that the default "Content-Type" for the individual request parameters is "text/plain", and the default "Content-Type" for the message form variable is "application/octet-stream" and has no defined name attribute. See the following examples for further details.

Custom Request Parameter Content-Type Values:

When sending requests the RequestParams may optionally include a custom Content-Type value. The syntax is:


[ContentType]name=value

For instance setting RequestParams to a value of:

[text/html]name1=value1
[my/type]name2=value2
name3=value3
Will result in a HTTP request like:
POST / HTTP/1.1
Host: www.nsoftware.com
Accept-Encoding: gzip, deflate
User-Agent: IPWorks HTTP Component - www.nsoftware.com
Connection: close
Content-Type: multipart/form-data; boundary="boundaryQDNEUw=="
Content-Length: 439

--boundaryQDNEUw==
Content-Disposition: form-data; name="name1"
Content-Type: text/html
	
value1
--boundaryQDNEUw==
Content-Disposition: form-data; name="name2"
Content-Type: my/type
	
value2
--boundaryQDNEUw==
Content-Disposition: form-data; name="name3"
Content-Type: text/plain
	
value3
--boundaryQDNEUw==
Content-Disposition: form-data
Content-Type: application/octet-stream
	
message body
--boundaryQDNEUw==--

Note the updated Content-Type header values for the "name1" and "name2" parameters.

Custom Content-Type and Name Values for the BizTalk Message Variable:

The default Content-Type value for the BizTalk Message form variable is "application/octet-stream" and no "name" attribute is defined in the Content-Disposition header. These can be explicitly defined in the ContentType and ContentFilename properties. These properties are applicable to the BizTalk Message form variable even if RequestParams is not set. For instance setting:

And leaving RequestParams unspecified (no parameters) will result in a HTTP request like:


POST / HTTP/1.1
Host: www.nsoftware.com
Accept-Encoding: gzip, deflate
User-Agent: IPWorks HTTP Component - www.nsoftware.com
Connection: close
Content-Type: multipart/form-data; boundary="boundaryVAJHkA=="
Content-Length: 142

--boundaryVAJHkA==
Content-Disposition: form-data; name="myfile.txt"
Content-Type: text/html
	
message body
--boundaryVAJHkA==--

Receive Adapter

In the receive adapter the RequestParams are used to form the body of the POST or PUT request using the more lightweight encoding "application/x-www-form-urlencoded". For instance, setting the request parameters to:

name1=value1
name2=value2

Will result in a HTTP request like:


POST / HTTP/1.1
Host: www.nsoftware.com
Accept-Encoding: gzip, deflate
User-Agent: IPWorks HTTP Component - www.nsoftware.com
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

name1=value1&name2=value2

To maintain complete control over the POST body PostData may be set instead. Additional Settings

In addition to the basic operation as discussed above the adapter supports a variety of other settings that control authentication, proxy settings, and other behavior. Some of additional features include:

Receiver Property List


The following is the full list of the properties of the receiver adapter with short descriptions. Click on the links for further details.

AuthorizationThe Authorization string to be sent to the server.
AuthSchemeThe authorization scheme to be used when server authorization is to be performed.
ContentTypeDefines the Content-Type header in the request.
CookiesThe cookies to be sent in the HTTP request.
ErrorThresholdThe maximum number of errors before the component shuts down.
FirewallA set of properties related to firewall access.
FollowRedirectsDetermines what happens when the server issues a redirect.
HTTPMethodThe HTTP method used for the request.
HTTPProxyA set of properties related to proxy access.
HTTPVersionThe HTTP version to use.
MaxBatchSizeThe maximum size, in MB, of the current batch (0 indicates no limit).
MaxFileCountThe maximum number of files in the current batch (0 indicates no limit).
MaxFileSizeThe maximum size, in MB, of a file in the current batch (0 indicates no limit).
MaxThreadsThe maximum number of threads that the component may consume.
OAuthAuthorizationOAuth Authorization Information.
OtherDefines a set of configuration settings to be used by the component.
OtherHeadersOther headers as determined by the user.
PasswordA password if authentication is to be used.
PollingIntervalThe amount of time, in seconds, between download attempts.
PostDataThe data to be posted to the server.
RequestParamsParameters to add to the POST or PUT request.
RequeueEndpointsWhether to requeue receive endpoints if the polling interval has not been reached.
RuntimeLicenseSpecifies the component runtime license key.
SSLAcceptServerCertInstructs the component to unconditionally accept the server certificate that matches the supplied certificate.
SSLCertThe certificate to use for client authentication during the SSL handshake.
SSOAffiliateSpecifies the name of the SSO Affiliate Application.
StatusLineThe first line of the last server response.
TempPathA temporary local directory where data can be stored before the component processes it.
TimeoutA timeout for the component.
TransferredHeadersThe full set of headers as received from the server.
TransportLogTells the component where and how to report information about its operations.
URIThe Uniform Resource Identifier (URI) of the send port or receive location.
URLThe URL to which the request is made.
UserA user name if authentication is to be used.

Sender Property List


The following is the full list of the properties of the sender adapter with short descriptions. Click on the links for further details.

AuthorizationThe Authorization string to be sent to the server.
AuthSchemeThe authorization scheme to be used when server authorization is to be performed.
ContentFilenameDefines the filename of the content.
ContentTypeDefines the Content-Type header in the request.
CookiesThe cookies to be sent in the HTTP request.
FirewallA set of properties related to firewall access.
FollowRedirectsDetermines what happens when the server issues a redirect.
HTTPMethodThe HTTP method used for the request.
HTTPProxyA set of properties related to proxy access.
HTTPVersionThe HTTP version to use.
MaxPersistentConnectionsThe maximum number of simultaneous persistent connections when sending.
MaxThreadsThe maximum number of threads that the component may consume.
MaxTransmissionBatchSizeThe maximum number of messages that can be sent in a single batch.
OAuthAuthorizationOAuth Authorization Information.
OtherDefines a set of configuration settings to be used by the component.
OtherHeadersOther headers as determined by the user.
PasswordA password if authentication is to be used.
PostDataThe data to be posted to the server.
RequestParamsParameters to add to the POST or PUT request.
RuntimeLicenseSpecifies the component runtime license key.
SSLAcceptServerCertInstructs the component to unconditionally accept the server certificate that matches the supplied certificate.
SSLCertThe certificate to use for client authentication during the SSL handshake.
SSOAffiliateSpecifies the name of the SSO Affiliate Application.
StatusLineThe first line of the last server response.
TimeoutA timeout for the component.
TransferredHeadersThe full set of headers as received from the server.
TransmitBatchModeHow the transmitter processes batches.
TransportLogTells the component where and how to report information about its operations.
URIThe Uniform Resource Identifier (URI) of the send port or receive location.
URLThe URL to which the request is made.
UserA user name if authentication is to be used.

Configuration Settings


The following is a list of configuration settings for the adapter with short descriptions. Click on the links for further details.

AcceptA list of acceptable MIME types for the request.
AcceptEncodingUsed to tell the server which types of content encodings the client supports.
AllowHTTPCompressionThis property enables HTTP compression for receiving data.
AllowHTTPFallbackA list of acceptable MIME types for the request.
ChunkSizeSpecifies the chunk size in bytes when using chunked encoding.
CustomRequestMethodSpecifies the HTTP method to be used.
EncodeURLIf set to true the URL will be encoded by the component.
IfModifiedSinceA date determining the maximum age of the desired document.
KerberosSPNThe Service Principal Name for the Kerberos Domain Controller.
LogDebugDataWhether to log debug data.
LogErrorBodyWhether to include the body of an error in the log message.
MaxRedirectAttemptsLimits the number of redirects that are followed in a request.
PragmaA browser/server specific header line (optional).
RangeThe byte-range to be sent to the server.
RefererReferer URL/document (optional).
ResponseBodyAlwaysAvailableWhether the response body is always available.
SubmitErrorAsMessageWhether errors are submitted as BizTalk messages.
TransferredDataLimitThe maximum of data to be transferred.
UseChunkedEncodingEnables or Disables HTTP chunked encoding for transfers.
UserAgentInformation about the user agent (browser).
ReuseSSLSessionDetermines if the SSL session is reused.
SSLCipherStrengthThe minimum cipher strength used for bulk encryption.
SSLEnabledCipherSuitesThe cipher suite to be used in an SSL negotiation.
SSLEnabledProtocolsUsed to enable/disable the supported security protocols.
SSLIncludeCertChainWhether the entire certificate chain is included in the SSLServerAuthentication event.
SSLSecurityFlagsFlags that control certificate verification.
TLS12SignatureAlgorithmsDefines the allowed TLS 1.2 signature algorithms when UseInternalSecurityAPI is True.
TLS12SupportedGroupsThe supported groups for ECC.
TLS13KeyShareGroupsThe groups for which to pregenerate key shares.
TLS13SignatureAlgorithmsThe allowed certificate signature algorithms.
TLS13SupportedGroupsThe supported groups for (EC)DHE key exchange.
AbsoluteTimeoutDetermines whether timeouts are inactivity timeouts or absolute timeouts.
LocalHostThe name of the local host or user-assigned IP interface through which connections are initiated or accepted.
TcpNoDelayWhether or not to delay when sending packets.
UseInternalSecurityAPITells the component whether or not to use the system security libraries or an internal implementation.

Copyright (c) 2022 /n software inc. - All rights reserved.
/n software Adapters for BizTalk - Version 20.0 [Build 8319]