HTTP Connection Manager
PreviousNext

HTTP Connection Manager can be used with REST API Task, Download File Task or JSON Source / XML Source Connectors to call any HTTP Web Service (GET, POST etc). It allows you to set various properties of HTTP Connection such as Timeout, Proxy, UserId/password etc.

Download SSIS PowerPack

Content

Video Tutorial

Coming soon...

Step-By-Step

In this tutorial we will learn how to create HTTP connection. You can create multiple connection(In this case its with Basic - UserId/Password, SOAP WSS, HMAC Authentication).
  1. Download and Install SSIS PowerPack from here (Skip this if you already did).
  2. Once you finished above steps, Open Visual Studio and Create New SSIS Package Project.
  3. Right click on Connection Managers Panel to Create MongoDB Connection,and Context Menu will appear, Select New Connection from the Context Menu.
    SSIS Create New Connection
  4. Select ZS-HTTP from the Connection Managers list and Click on Add Button.
    HTTP Connection - Add
  5. In the connection manager UI, enter Web Url, set Credentials Type to Basic - UserId/Password and enter it. You can use following details for practice it.
    http://httpbin.org/basic-auth/user1/p@ss123
    
    User Name : user1
    Password : p@ss123
    
    HTTP Connection - Configure
  6. In the Client certificates tab, you can do following settings.
    HTTP Connection - Client Certificates
  7. Click on OK to save HTTP Connection configure setting UI.
  8. Once you finished, you will see HTTP connection in Connection Manager panel.
    HTTP Connection - Success

How to create HTTP Connection with SOAP WSS.

  1. Firstly, you need to obtained SOAP WSS Credentials. In this case its from Workday API. Click here to obtain Workday API.
  2. Right click on Connection Managers Panel to Create MongoDB Connection,and Context Menu will appear, Select New Connection from the Context Menu.
    SSIS Create New Connection
  3. Select ZS-HTTP from the Connection Managers list and Click on Add Button.
    HTTP Connection - Add
  4. Enter API URL for Workday (Make sure you don’t enter WSDL URL found here ). Your API URL will be something like below. Select credential type as SOAP WSS (This setting is only found in v2.6.4 or Higher), Enter your workday userid and password, For WSS password type setting you leave it default (Not set) or change to PasswordHash for more secure communication.
    HTTP Connection - SOAP WSS Configure
  5. Click on OK to save HTTP Connection configure setting UI.
  6. Click here to create HTTP SOAP WSS for Talend, Click here to create HTTP SOAP WSS for Tableau, Click here to create HTTP SOAP WS for Python.
  7. Once you finished, you will see HTTP connection in Connection Manager panel.
    HTTP Connection - Success

How to create HTTP Connection with HMAC Authentication.

  1. Right click on Connection Managers Panel to Create MongoDB Connection,and Context Menu will appear, Select New Connection from the Context Menu.
    SSIS Create New Connection
  2. Select ZS-HTTP from the Connection Managers list and Click on Add Button.
    HTTP Connection - Add
  3. Once HTTP Connection UI is visible select HMAC Authentication option, enter User ID and Password or API Key as below. If CosmosDB API example ignore Username and enter master API key. You can enter any valid URL (We will override this in next step anyways). Click on Configure HMAC Signature link.
    HTTP Connection - Configure
  4. Enter following 4 pieces to create correct HMAC Signature.
    HTTP Connection - Configure
  5. Click on OK to save HTTP Connection configure setting UI.
  6. Once you finished, you will see HTTP connection in Connection Manager panel.
    HTTP Connection - Success

Properties

Property Name Description
RetainSameConnection
Url
TokenAuthHeader Authorization Header Name for Security Token. Default AuthHeader name is Authorization if you leave this field blank
AuthScheme Auth scheme is a prefix in the Authorization header value. e.g. Authorization: Bearer xxxxxxxxxx. Default prefix is Bearer if you dont specify this property. To use blank prefix set this to {none} (including curly brackets). If your prefix has space then another space is not appended otherwise space automatically appended after prefix.
HashAlgorithm Hashing Algorithm to be used to generate HMAC signature. You can use value like md5, sha1, sha256, sha512 or any other valid Hashing algorithms installed on your system (Name must be valid e.g. see some valid HMAC Algo names here https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.hmac.create).
HashSignatureFormat Format for String to Sign to generate HMAC Signature. This string is hashed with password / secret key and then passed via Header. You can use any of the following placeholders (except [$signature$] ) to build dynamic string.
NOTE:   Adding -lc after [$sometag$] will give you lowercase value (e.g. [$host$]-lc will give lowercase HOST)
 Adding -enc after [$sometag$] will give you URL encoded value (e.g. [$host$]-enc will give URL encoded value)
[$cr$]           - Indicates Carriage Return Character (same as \r)
[$lf$]           - Indicates Line Feed Character (same as \n)
[$tab$]           - Indicates Tab Character (same as \t)
[$userid$]  - Your userid or account id entered in UserName property
[$http-method$]  - Indicates HTTP Verb for current request (e.g GET, POST, PUT, HEAD, DELETE)
[$host$]         - Host name part from URL (e.g. returns www.zappysys.com for https://www.zappysys.com/someapi)
[$host-noport$]         - Host name without port number (e.g. returns myserver for https://myserver:8888 )
[$port$]         - Port number from host name (e.g. returns 8888 for https://myserver:8888 )
[$url-relative$] - Indicates URL path of current request. This part is after host name and before ? if parameters used (e.g /api/v1/customers  for http://a.com/api/v1/customers?id=123)
[$url-query$]           - URL parameters (key and value pairs) (e.g. for http://a.com/api/v1/customers?z=123&a=true it will return z=123&a=true)
[$url-path-query$] - Indicates URL path and query portion of current request. (e.g returns /api/v1/customers?id=123  for http://a.com/api/v1/customers?id=123)
[$url-part-[left|right]-N1-[N2]$] - URL part from left or right.  Where N1 is start position, N2 is end position.
  When calling part-right function N1 starts from right (1=first) and N2 starts from left (1=first).
  When calling part-left function N1 starts from left (1=first) and N2 starts from right (0=first).
  Notice that [N2] is zero based index when using part-left else start at 1.
  ***** See below examples **** for URL http://abc.com/api/v1/customers?z=123&a=true
  [$url-part-right-1$] returns..... customers
  [$url-part-right-2$] returns..... v1
  [$url-part-right-1-1$] returns... http://abc.com/api/v1/customers
  [$url-part-right-1-2$] returns... http://abc.com/api/v1
  [$url-part-right-1-4$] returns... api/v1/customers (all parts except domain and query)
  [$url-part-left-1$] returns...... http:
  [$url-part-left-3$] returns...... abc.com
  [$url-part-left-3-1$] returns.... abc.com/api/v1/customers (3rd from left till last part)
  [$url-part-left-1-0$] returns.... http://abc.com/api/v1/customers (all parts except query)
  [$url-part-left-1-1$] returns.... http://abc.com/api/v1
  [$url-part-left-1-2$] returns.... http://abc.com/api
  [$url-part-left-4-0$] returns.... api/v1/customers (all parts except first 3 parts from left)
  [$url-part-left-4-1$] returns.... api/v1
  [$url-part-left-4-2$] returns.... api
[$url-query-canonical] - URL parameters in Canonical Format (key and value pairs are sorted by key. Key is returned as lowercase and both key+value URL encoded) (e.g. for http://a.com/api/v1/customers?Zebra=Good&Apple Cake=Yummy ...it will return apple%20cake=Yummy&zebra=Good)
[$timestamp$]    - Indicates Current Timestamp in UTC (Use TimestampFormat property to change default Date Format which is ISO. To use Unix based time enter epoch, for custom format use something like yyyy-MM-ddTHH:mm:ss.fffZ for ISO. For Date specifier visit https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings)
[$nounce$]       - A unique random string (e.g. nonce). This is sometimes asked by provider to put in signature to avoid replay attack.
[$body$]         - Body text for the request.
[$body-hash-ALGORITHM[-hex][-ke]$] - (example: [$body-hash-sha256-hex$] or [$body-hash-sha256$]) This placeholder is for HASH of supplied body for current request. Replace ALGORITHM with valid name (e.g. md5, sha1, sha256, sha512). Also to Output Hash as lowercase Alphanumeric Hex suffix by -hex (e.g. [$body-hash-sha256-hex$] ). By default this placeholder is not included for GET / HEAD requests (We remove HASH and trailing \n for GET / HEAD requests). To include Body HASH regardless request Method you need to add -ke (Keep Empty) suffix. e.g. [$body-hash-sha256-ke$]  
[$content-type[-ke]$] - (example: [$content-type$] or [$content-type-ke$]) This placeholder is to indicate request COntent-Type (e.g. application/json). By default this placeholder is not included for GET / HEAD requests (We remove content-type from String Format along with trailing \n for GET / HEAD requests). To include Body content-type regardless request method you need to add -ke (Keep Empty) suffix. e.g. [$content-type-ke$]  
[$signature$] - Signature in base64 format. This is calculated based on HashSignatureFormat string.  
[$signature-hex$] - Signature in lowercase Hex format. This is calculated based on HashSignatureFormat string.  
[$token$] - If you using DynamicToken method to login first and then extract token to call next API then you can use this placeholder for Headers.
HashSignatureFormatForLogin Format for String to Sign to generate HMAC Signature For DynamicToken Login call. This string is hashed with password / secret key and then passed via Header. You can use any of the following placeholders (except [$signature$] ) to build dynamic string.
NOTE:   Adding -lc after [$sometag$] will give you lowercase value (e.g. [$host$]-lc will give lowercase HOST)
 Adding -enc after [$sometag$] will give you URL encoded value (e.g. [$host$]-enc will give URL encoded value)
[$cr$]           - Indicates Carriage Return Character (same as \r)
[$lf$]           - Indicates Line Feed Character (same as \n)
[$tab$]           - Indicates Tab Character (same as \t)
[$userid$]  - Your userid or account id entered in UserName property
[$http-method$]  - Indicates HTTP Verb for current request (e.g GET, POST, PUT, HEAD, DELETE)
[$host$]         - Host name part from URL (e.g. returns www.zappysys.com for https://www.zappysys.com/someapi)
[$host-noport$]         - Host name without port number (e.g. returns myserver for https://myserver:8888 )
[$port$]         - Port number from host name (e.g. returns 8888 for https://myserver:8888 )
[$url-relative$] - Indicates URL path of current request. This part is after host name and before ? if parameters used (e.g /api/v1/customers  for http://a.com/api/v1/customers?id=123)
[$url-query$]           - URL parameters (key and value pairs) (e.g. for http://a.com/api/v1/customers?z=123&a=true it will return z=123&a=true)
[$url-path-query$] - Indicates URL path and query portion of current request. (e.g returns /api/v1/customers?id=123  for http://a.com/api/v1/customers?id=123)
[$url-part-[left|right]-N1-[N2]$] - URL part from left or right.  Where N1 is start position, N2 is end position.
  When calling part-right function N1 starts from right (1=first) and N2 starts from left (1=first).
  When calling part-left function N1 starts from left (1=first) and N2 starts from right (0=first).
  Notice that [N2] is zero based index when using part-left else start at 1.
  ***** See below examples **** for URL http://abc.com/api/v1/customers?z=123&a=true
  [$url-part-right-1$] returns..... customers
  [$url-part-right-2$] returns..... v1
  [$url-part-right-1-1$] returns... http://abc.com/api/v1/customers
  [$url-part-right-1-2$] returns... http://abc.com/api/v1
  [$url-part-right-1-4$] returns... api/v1/customers (all parts except domain and query)
  [$url-part-left-1$] returns...... http:
  [$url-part-left-3$] returns...... abc.com
  [$url-part-left-3-1$] returns.... abc.com/api/v1/customers (3rd from left till last part)
  [$url-part-left-1-0$] returns.... http://abc.com/api/v1/customers (all parts except query)
  [$url-part-left-1-1$] returns.... http://abc.com/api/v1
  [$url-part-left-1-2$] returns.... http://abc.com/api
  [$url-part-left-4-0$] returns.... api/v1/customers (all parts except first 3 parts from left)
  [$url-part-left-4-1$] returns.... api/v1
  [$url-part-left-4-2$] returns.... api
[$url-query-canonical] - URL parameters in Canonical Format (key and value pairs are sorted by key. Key is returned as lowercase and both key+value URL encoded) (e.g. for http://a.com/api/v1/customers?Zebra=Good&Apple Cake=Yummy ...it will return apple%20cake=Yummy&zebra=Good)
[$timestamp$]    - Indicates Current Timestamp in UTC (Use TimestampFormat property to change default Date Format which is ISO. To use Unix based time enter epoch, for custom format use something like yyyy-MM-ddTHH:mm:ss.fffZ for ISO. For Date specifier visit https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings)
[$nounce$]       - A unique random string (e.g. nonce). This is sometimes asked by provider to put in signature to avoid replay attack.
[$body$]         - Body text for the request.
[$body-hash-ALGORITHM[-hex][-ke]$] - (example: [$body-hash-sha256-hex$] or [$body-hash-sha256$]) This placeholder is for HASH of supplied body for current request. Replace ALGORITHM with valid name (e.g. md5, sha1, sha256, sha512). Also to Output Hash as lowercase Alphanumeric Hex suffix by -hex (e.g. [$body-hash-sha256-hex$] ). By default this placeholder is not included for GET / HEAD requests (We remove HASH and trailing \n for GET / HEAD requests). To include Body HASH regardless request Method you need to add -ke (Keep Empty) suffix. e.g. [$body-hash-sha256-ke$]  
[$content-type[-ke]$] - (example: [$content-type$] or [$content-type-ke$]) This placeholder is to indicate request COntent-Type (e.g. application/json). By default this placeholder is not included for GET / HEAD requests (We remove content-type from String Format along with trailing \n for GET / HEAD requests). To include Body content-type regardless request method you need to add -ke (Keep Empty) suffix. e.g. [$content-type-ke$]  
[$signature$] - Signature in base64 format. This is calculated based on HashSignatureFormat string.  
[$signature-hex$] - Signature in lowercase Hex format. This is calculated based on HashSignatureFormat string.  
[$token$] - If you using DynamicToken method to login first and then extract token to call next API then you can use this placeholder for Headers.
ExtraHeaders Extra Headers to include along with each requests (Key value pairs separated by double bar. Example... X-MyHeader:some-value||X-TimeStamp:[$timestamp$]||X-Signature:[$signature$] ). Your API may need to include additional headers such as Timestamp, Signature, Hash for Body. In such case you can specify header(s) in this property. You can use following Placeholders anywhere in your Header list.
NOTE:   Adding -lc after [$sometag$] will give you lowercase value (e.g. [$host$]-lc will give lowercase HOST)
 Adding -enc after [$sometag$] will give you URL encoded value (e.g. [$host$]-enc will give URL encoded value)
[$cr$]           - Indicates Carriage Return Character (same as \r)
[$lf$]           - Indicates Line Feed Character (same as \n)
[$tab$]           - Indicates Tab Character (same as \t)
[$userid$]  - Your userid or account id entered in UserName property
[$http-method$]  - Indicates HTTP Verb for current request (e.g GET, POST, PUT, HEAD, DELETE)
[$host$]         - Host name part from URL (e.g. returns www.zappysys.com for https://www.zappysys.com/someapi)
[$host-noport$]         - Host name without port number (e.g. returns myserver for https://myserver:8888 )
[$port$]         - Port number from host name (e.g. returns 8888 for https://myserver:8888 )
[$url-relative$] - Indicates URL path of current request. This part is after host name and before ? if parameters used (e.g /api/v1/customers  for http://a.com/api/v1/customers?id=123)
[$url-query$]           - URL parameters (key and value pairs) (e.g. for http://a.com/api/v1/customers?z=123&a=true it will return z=123&a=true)
[$url-path-query$] - Indicates URL path and query portion of current request. (e.g returns /api/v1/customers?id=123  for http://a.com/api/v1/customers?id=123)
[$url-part-[left|right]-N1-[N2]$] - URL part from left or right.  Where N1 is start position, N2 is end position.
  When calling part-right function N1 starts from right (1=first) and N2 starts from left (1=first).
  When calling part-left function N1 starts from left (1=first) and N2 starts from right (0=first).
  Notice that [N2] is zero based index when using part-left else start at 1.
  ***** See below examples **** for URL http://abc.com/api/v1/customers?z=123&a=true
  [$url-part-right-1$] returns..... customers
  [$url-part-right-2$] returns..... v1
  [$url-part-right-1-1$] returns... http://abc.com/api/v1/customers
  [$url-part-right-1-2$] returns... http://abc.com/api/v1
  [$url-part-right-1-4$] returns... api/v1/customers (all parts except domain and query)
  [$url-part-left-1$] returns...... http:
  [$url-part-left-3$] returns...... abc.com
  [$url-part-left-3-1$] returns.... abc.com/api/v1/customers (3rd from left till last part)
  [$url-part-left-1-0$] returns.... http://abc.com/api/v1/customers (all parts except query)
  [$url-part-left-1-1$] returns.... http://abc.com/api/v1
  [$url-part-left-1-2$] returns.... http://abc.com/api
  [$url-part-left-4-0$] returns.... api/v1/customers (all parts except first 3 parts from left)
  [$url-part-left-4-1$] returns.... api/v1
  [$url-part-left-4-2$] returns.... api
[$url-query-canonical] - URL parameters in Canonical Format (key and value pairs are sorted by key. Key is returned as lowercase and both key+value URL encoded) (e.g. for http://a.com/api/v1/customers?Zebra=Good&Apple Cake=Yummy ...it will return apple%20cake=Yummy&zebra=Good)
[$timestamp$]    - Indicates Current Timestamp in UTC (Use TimestampFormat property to change default Date Format which is ISO. To use Unix based time enter epoch, for custom format use something like yyyy-MM-ddTHH:mm:ss.fffZ for ISO. For Date specifier visit https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings)
[$nounce$]       - A unique random string (e.g. nonce). This is sometimes asked by provider to put in signature to avoid replay attack.
[$body$]         - Body text for the request.
[$body-hash-ALGORITHM[-hex][-ke]$] - (example: [$body-hash-sha256-hex$] or [$body-hash-sha256$]) This placeholder is for HASH of supplied body for current request. Replace ALGORITHM with valid name (e.g. md5, sha1, sha256, sha512). Also to Output Hash as lowercase Alphanumeric Hex suffix by -hex (e.g. [$body-hash-sha256-hex$] ). By default this placeholder is not included for GET / HEAD requests (We remove HASH and trailing \n for GET / HEAD requests). To include Body HASH regardless request Method you need to add -ke (Keep Empty) suffix. e.g. [$body-hash-sha256-ke$]  
[$content-type[-ke]$] - (example: [$content-type$] or [$content-type-ke$]) This placeholder is to indicate request COntent-Type (e.g. application/json). By default this placeholder is not included for GET / HEAD requests (We remove content-type from String Format along with trailing \n for GET / HEAD requests). To include Body content-type regardless request method you need to add -ke (Keep Empty) suffix. e.g. [$content-type-ke$]  
[$signature$] - Signature in base64 format. This is calculated based on HashSignatureFormat string.  
[$signature-hex$] - Signature in lowercase Hex format. This is calculated based on HashSignatureFormat string.  
[$token$] - If you using DynamicToken method to login first and then extract token to call next API then you can use this placeholder for Headers.
ExtraHeadersForLogin For DynamicToken mode when you enable Signature Hash, you can supply different set of Extra Headers just for login API call to include along with each requests (Key value pairs separated by double bar. Example... X-MyHeader:some-value||X-TimeStamp:[$timestamp$]||X-Signature:[$signature$] ). Your API may need to include additional headers such as Timestamp, Signature, Hash for Body. In such case you can specify header(s) in this property. You can use following Placeholders anywhere in your Header list. To supply Extra Headers for non-login calls you can set ExtraHeaders. If this property is NULL or blank then value from ExtraHeaders is used for both Login and Data calls.
NOTE:   Adding -lc after [$sometag$] will give you lowercase value (e.g. [$host$]-lc will give lowercase HOST)
 Adding -enc after [$sometag$] will give you URL encoded value (e.g. [$host$]-enc will give URL encoded value)
[$cr$]           - Indicates Carriage Return Character (same as \r)
[$lf$]           - Indicates Line Feed Character (same as \n)
[$tab$]           - Indicates Tab Character (same as \t)
[$userid$]  - Your userid or account id entered in UserName property
[$http-method$]  - Indicates HTTP Verb for current request (e.g GET, POST, PUT, HEAD, DELETE)
[$host$]         - Host name part from URL (e.g. returns www.zappysys.com for https://www.zappysys.com/someapi)
[$host-noport$]         - Host name without port number (e.g. returns myserver for https://myserver:8888 )
[$port$]         - Port number from host name (e.g. returns 8888 for https://myserver:8888 )
[$url-relative$] - Indicates URL path of current request. This part is after host name and before ? if parameters used (e.g /api/v1/customers  for http://a.com/api/v1/customers?id=123)
[$url-query$]           - URL parameters (key and value pairs) (e.g. for http://a.com/api/v1/customers?z=123&a=true it will return z=123&a=true)
[$url-path-query$] - Indicates URL path and query portion of current request. (e.g returns /api/v1/customers?id=123  for http://a.com/api/v1/customers?id=123)
[$url-part-[left|right]-N1-[N2]$] - URL part from left or right.  Where N1 is start position, N2 is end position.
  When calling part-right function N1 starts from right (1=first) and N2 starts from left (1=first).
  When calling part-left function N1 starts from left (1=first) and N2 starts from right (0=first).
  Notice that [N2] is zero based index when using part-left else start at 1.
  ***** See below examples **** for URL http://abc.com/api/v1/customers?z=123&a=true
  [$url-part-right-1$] returns..... customers
  [$url-part-right-2$] returns..... v1
  [$url-part-right-1-1$] returns... http://abc.com/api/v1/customers
  [$url-part-right-1-2$] returns... http://abc.com/api/v1
  [$url-part-right-1-4$] returns... api/v1/customers (all parts except domain and query)
  [$url-part-left-1$] returns...... http:
  [$url-part-left-3$] returns...... abc.com
  [$url-part-left-3-1$] returns.... abc.com/api/v1/customers (3rd from left till last part)
  [$url-part-left-1-0$] returns.... http://abc.com/api/v1/customers (all parts except query)
  [$url-part-left-1-1$] returns.... http://abc.com/api/v1
  [$url-part-left-1-2$] returns.... http://abc.com/api
  [$url-part-left-4-0$] returns.... api/v1/customers (all parts except first 3 parts from left)
  [$url-part-left-4-1$] returns.... api/v1
  [$url-part-left-4-2$] returns.... api
[$url-query-canonical] - URL parameters in Canonical Format (key and value pairs are sorted by key. Key is returned as lowercase and both key+value URL encoded) (e.g. for http://a.com/api/v1/customers?Zebra=Good&Apple Cake=Yummy ...it will return apple%20cake=Yummy&zebra=Good)
[$timestamp$]    - Indicates Current Timestamp in UTC (Use TimestampFormat property to change default Date Format which is ISO. To use Unix based time enter epoch, for custom format use something like yyyy-MM-ddTHH:mm:ss.fffZ for ISO. For Date specifier visit https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings)
[$nounce$]       - A unique random string (e.g. nonce). This is sometimes asked by provider to put in signature to avoid replay attack.
[$body$]         - Body text for the request.
[$body-hash-ALGORITHM[-hex][-ke]$] - (example: [$body-hash-sha256-hex$] or [$body-hash-sha256$]) This placeholder is for HASH of supplied body for current request. Replace ALGORITHM with valid name (e.g. md5, sha1, sha256, sha512). Also to Output Hash as lowercase Alphanumeric Hex suffix by -hex (e.g. [$body-hash-sha256-hex$] ). By default this placeholder is not included for GET / HEAD requests (We remove HASH and trailing \n for GET / HEAD requests). To include Body HASH regardless request Method you need to add -ke (Keep Empty) suffix. e.g. [$body-hash-sha256-ke$]  
[$content-type[-ke]$] - (example: [$content-type$] or [$content-type-ke$]) This placeholder is to indicate request COntent-Type (e.g. application/json). By default this placeholder is not included for GET / HEAD requests (We remove content-type from String Format along with trailing \n for GET / HEAD requests). To include Body content-type regardless request method you need to add -ke (Keep Empty) suffix. e.g. [$content-type-ke$]  
[$signature$] - Signature in base64 format. This is calculated based on HashSignatureFormat string.  
[$signature-hex$] - Signature in lowercase Hex format. This is calculated based on HashSignatureFormat string.  
[$token$] - If you using DynamicToken method to login first and then extract token to call next API then you can use this placeholder for Headers.
EnableRequestHashing Enable this option to add hashed signature part of request header. For now this option is only valid when you choose DynamicToken method. If you Choose HashSignature then this option is ignored.
HashTimestampFormat Timestamp format for Signature calculation. Default format for timestamp is ISO (e.g. yyyy-MM-ddTHH:mm:ss.fffZ) If you want to use Unix based format then enter word [epoch] without bracket. You can use any of these custom date format specifiers https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
HashTreatSecretAsNonBase64 Treat HMAC secret / signing key as non-base64 string. By default secret is treated as base64 encoded string (see also HashSignWithApiKey). You can also suffix your key or secret with --non-base64 word and its same effect as using this option.
HashSignWithApiKey User ApiKey / UserId to sign payload rather than ApiSecret/Password. By default ApiSecret/Password is used to sign your string to generate signature (i.e. [$signature$] or [$signature-hex$]) .
HashDoNotSign Do not sign data with Key or Secret and just HASH data to produce signature. By default HMAC is performed (HASH + SIGN) on data when you choose CredentialType = HashSignature. If you have usecase like producing PasswordDigest which doesnt need to be signed using SecretKey then use this option.
TokenExpirationTimeInSeconds
TokenRequestContentType

Available Options (Use numeric value listed in bracket if you have to define expression on this property (for dynamic behavior).

Option Description
Default [0] Default
TextPlain [1] Text (text/plain)
ApplicationJson [2] JSON (application/json)
ApplicationXml [3] XML (application/xml)
TextXml [4] XML (text/xml)
TextXmlUtf8 [5] XML (text/xml;charset=UTF-8)
TextHtml [6] HTML (text/html)
ApplicationFormUrlencoded [7] Form (application/x-www-form-urlencoded)
ApplicationOctetStream [8] Binary (application/octet-stream)
Raw [9] Raw (No content-type)
MultiPartMixed [10] Multipart Mixed (multipart/mixed)
ApplicationGraphql [11] GraphQL (application/graphql)
TokenRequestIsMultiPart
TokenRequestData
TokenRequestHeaders
TokenRequestMethod
TokenResponseContentFilter
TokenResponseContentType

Available Options (Use numeric value listed in bracket if you have to define expression on this property (for dynamic behavior).

Option Description
None [0] None
Json [1] Json
Xml [2] Xml
Regex [3] Regex
TokenResponseCookie
TokenResponseHeader
TokenResponseValueExtractMode

Available Options (Use numeric value listed in bracket if you have to define expression on this property (for dynamic behavior).

Option Description
Body [0] Extract From Body
Header [1] Extract From Response Header
Cookie [2] Extract From Response Cookie
TokenUrl
TokenFunction
RetainCookies Enable this option to pass on login Cookies to next call when using DynamicToken Method. Some API may require you to pass session cookies along with extracted token.
UseClientCertificate UseClientCertificate
ClientCertificateStorageType CertificateStorageType

Available Options (Use numeric value listed in bracket if you have to define expression on this property (for dynamic behavior).

Option Description
NotSet [0] <Not set>
LocalMachine [1] Stored in LocalMachine Storage Area
CurrentUser [2] Stored in User Storage Area
PfxFile [3] Disk File - PFX (PKCS12) format
ClientCertificateStoreName CertificateStoreName

Available Options (Use numeric value listed in bracket if you have to define expression on this property (for dynamic behavior).

Option Description
NotSet [0] <Not set>
AddressBook [1] AddressBook
AuthRoot [2] AuthRoot
CertificateAuthority [3] CertificateAuthority
Disallowed [4] Disallowed
My [5] My
Root [6] Root
TrustedPeople [7] TrustedPeople
TrustedPublisher [8] TrustedPublisher
ClientCertificateThumbPrint CertificateThumbprint
ClientCertificatePath CertificatePath
ClientCertificatePassword
Timeout Connection Timeout in Milliseconds.
UserName
SoapWssPasswordType Password type for SOAP WSS Header. By default password is sent in plain text. You can change to Hash mode for better security if your server supports it.

Available Options (Use numeric value listed in bracket if you have to define expression on this property (for dynamic behavior).

Option Description
Notset [0] Not set
PasswordText [1] PasswordText (Plain Text)
PasswordDigest [2] PasswordDigest (SHA1 Hashed)
SslVersion

Available Options (Use numeric value listed in bracket if you have to define expression on this property (for dynamic behavior).

Option Description
Default [0] System Default
Ssl3 [1] SSL v3.0
Ssl3Plus [2] SSL v3.0 or higher
Tls [3] TLS v1.0
TlsPlus [4] TLS v1.0 or higher
Tls11 [5] TLS v1.1
Tls11Plus [6] TLS v1.1 or higher
Tls12 [7] TLS v1.2
Tls12Plus [8] TLS v1.2 or higher
Tls13 [9] TLS v1.3
Any [65535] Any Version
CredentialType

Available Options (Use numeric value listed in bracket if you have to define expression on this property (for dynamic behavior).

Option Description
Notset [0] Not set
Windows [1] Default Windows Credentials - Current User Credentials
Basic [2] Basic - UserID/Password
NTLM [3] NTLM - UserID/Password/Domain
Kerberos [4] Kerberos - UserID/Password/Domain
SoapWss [5] SOAP WSS - UserID/Password in SOAP Body
Token [6] Static Token / API Key
TokenDynamic [7] Dynamic Token - Two Step Auth (i.e. Login to get token)
TokenJwt [8] JWT Token (RFC 7519)
HashSignature [9] HMAC / Hash Signature (i.e. Request Hashing using Key / Password)
Digest [10] Digest - UserID/Password (WITHOUT PARAMETER in URL)
PlaceholderAuth [11] Credentials in Body (Replace [$password$] and [$userid$])
Hawk [12] Hawk Authentication
JwtCustomClaims Additional JWT Claims to be passed along with standard claims (e.g. iss, exp). To pass multiple claims use JSON like format except opening and closing brackets { and } (Example: "prop1": "YourVal1""prop2": "YourVal2"  ). This option is only valid if you set CredentialType=TokenJwt  
Password
ConnectionString
RetryMode

Available Options (Use numeric value listed in bracket if you have to define expression on this property (for dynamic behavior).

Option Description
None [0] Do not retry
RetryAny [1] Retry any web errors
RetryWhenStatusCodeMatch [2] Retry for matching response status code(s)
RetryWhenMessageMatch [3] Retry errors for matching error sub string(s)
RetryCountMax
RetryMessageList
RetryMultiplyWaitTime
RetryStatusCodeList
RetryWaitTimeMs
UseProxy Enable custom proxy settings (If this is not set then system default proxy will be used. To disable proxy totally uncheck this option and check DoNotUseDefaultProxy option if available)
ProxyUrl Web URL of Proxy server (including port  if necessary). [e.g. http://myproxyserver:8080/]
DoNotUseDefaultProxy Do not use system default proxy (This setting is ignored if UseProxy=true)
ProxyUseCreds Enable passing userid and password to proxy server
ProxyPassword Proxy password
ProxyUserName Proxy username

Setting UI

HTTP Connection - Setting UI

See Also

References

Articles / Tutorials

Click here to see all articles for [HTTP Connection] category
Read Freshdesk data in SSIS – REST API Call

Read Freshdesk data in SSIS – REST API Call

Introduction In this post we will learn how to read Freshdesk data in SSIS using ZappySys JSON / REST API Source. We will see how to authenticate, paginate / parse and load Freshdesk data into SQL Server Table in just few clicks. If you don’t use Freshdesk and considering using Zendesk instead then check our previous […]


Call Oracle UCM Web Service in SSIS (Read XML SOAP API)

Call Oracle UCM Web Service in SSIS (Read XML SOAP API)

Introduction In this post we will learn how to access data from Oracle UCM Web Service (Middle layer for WebLogic) and load into SQL Server or any other target. We will use SSIS XML Source to achieve this result.     About Oracle UCM Web Service If you are not sure what is SOAP Web […]


SSIS Magento data Read / Write using REST API Call

SSIS Magento data Read / Write using REST API Call

Introduction In this post we will lean SSIS Magento data read / write operations. Magento is a very popular eCommerce platform and they offer JSON based REST API and XML based SOAP API. You can use either API based on your need to automate common integration needs. We recommend using REST API (JSON API) if possible […]


How to read data from Splunk in SSIS

How to read data from Splunk in SSIS

Introduction Splunk is commonly used for searching, monitoring, and analyzing machine-generated big data, via a Web-style interface. In this post, you will learn how to implement Splunk API Integration with SQL Server or any other RDBMS (e.g. Oracle, MySQL, Postgresql) using SSIS in a few clicks. We will use SSIS XML Source Connector to Read data from Splunk and Load into SQL Server / […]


How to call SOAP / REST API using Dynamic Token in SSIS

How to call SOAP / REST API using Dynamic Token in SSIS

Introduction In this blog, we will learn how to call SOAP / REST API using Dynamic Token in SSIS (i.e. Two steps authentication approach – Fist Call Login API to get token and then call API). In our previous blog post, we saw how to call Web API using some industry standards approaches, such as […]


Loading data from SQL Server to Elasticsearch with SSIS

Loading data from SQL Server to Elasticsearch with SSIS

Introduction Elasticsearch is a powerful engine that allows you to store, aggregate and, most importantly, search data in a very analytical way. In this tutorial, you will learn how to bulk load data from SQL Server to Elasticsearch with SSIS (part of SQL Server) and ZappySys PowerPack. The scope of this article will be to show how to import […]



Copyrights reserved. ZappySys LLC.