The URL adapter uses cURL. In some cases you might want to set cURL options on an URL adapter request, e.g. to specify a timeout. You can do that by adding these cURL options on the URL alias to the options attribute. To specify multiple cURL options, list them separated by ',' (comma) or ' ' (blank). If an option allows for multiple values, you can concatenate them by using the '|' (pipe) operator.

Examples:

  • CURLOPT_CONNECTTIMEOUT=60 (see note below for a hint regarding this option)
  • CURLOPT_CONNECTTIMEOUT=60, E2E_FORBID_REUSE=true
  • CURLOPT_CONNECTTIMEOUT=60 E2E_FORBID_REUSE=true
  • CURLOPT_HTTPAUTH=CURLAUTH_NTLM|CURLAUTH_NEGOTIATE, E2E_FORBID_REUSE=true

Setting cURL Options dynamically

Alternatively, it is possible to provide the cURL options dynamically.

The options parameter is an array of Base Components.Add Ons.Option, describing a name/value pair. Set the cURL option you want to provide to attribute name and the value to attribute value.
Then, provide the options array to parameter options of the URL adapter as shown below.

Persisted variable curlOptions is an array of Option. It contains the cURL options as name/value pairs. The execution diagram provides this variable to the parameter option of the URL adapter call (request).
The contents of curlOptions need to be prepared before in a dedicated operation, e.g. a mapping diagram.

Scheer PAS cURL Options

OptionData TypeRemarks
E2E_FORBID_REUSEBooleanIf E2E_FORBID_REUSE is true for a URL adapter call, then all curl connections are closed after the request.

Native cURL Options

The following options - listed in alphabetical order - are currently supported (see the cURL documentation for more details).

Legend:(tick) Option is recognized and forwarded to cURL
(warning) Option is recognized and forwarded to cURL, but may overwrite built-in URL adapter functionality
(error) Option is not supported and not forwarded to cURL

cURL Data Types

All cURL data types can be set by using xUML Base Type String :

cURL Data TypexUML Base Type Comment
Array(String)Array of StringsYou must use a cast() to use this type, because the URL option value is of type String.
BitmaskStringIt is a string containing a string of cURL options separated by the pipe character ("|").
Blobn/aIs not supported.
BooleanStringYou can use false or 0 for false and true or 1 for true.
Callbackn/aIs not supported.
ConstantStringUse the defined strings from cURL. For example, for the option CURLOPT_FTP_FILEMETHOD you can use CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD or CURLFTPMETHOD_SINGLECWD. The xUML Runtime will convert the strings to numbers.
FileHandlen/aIs not supported.
IntegerStringString will be converted to a number.
StringString

List of Supported Options

OptionData TypeSupportedSupported cURL Constants / Remarks
CURLOPT_ACCEPT_ENCODINGString(tick)

CURLOPT_ACCEPTTIMEOUT_MS

Integer(tick)
CURLOPT_APPENDString(tick)
CURLOPT_AUTOREFERERBoolean(tick)

CURLOPT_AWS_SIGV4

String(tick)
CURLOPT_BUFFERSIZEInteger(tick)
CURLOPT_CAINFOString(warning)
CURLOPT_CAPATHString(tick)

CURLOPT_CA_CACHE_TIMEOUTInteger(tick)In seconds (see cURL documentation).

CURLOPT_CONNECTTIMEOUT

Integer(tick)

In seconds (see cURL documentation).

This timeout applies to the connection phase of the TCP/IP protocol only. If you want to use timeout limiting the whole interaction time, use CURLOPT_TIMEOUT.

CURLOPT_CONNECT_ONLYBoolean(tick)
CURLOPT_CRLFBoolean(tick)
CURLOPT_CRLFILEString(tick)
CURLOPT_CONV_FROM_NETWORK_FUNCTION Callback(error)
CURLOPT_CONV_FROM_UTF8_FUNCTIONCallback(error)
CURLOPT_CONV_TO_NETWORK_FUNCTIONCallback(error)
CURLOPT_COOKIEString(tick)
CURLOPT_COOKIEFILEString(tick)
CURLOPT_COOKIEJARString(tick)
CURLOPT_COOKIELISTString(tick)
CURLOPT_COOKIESESSIONBoolean(tick)
CURLOPT_CUSTOMREQUESTString(warning)
CURLOPT_DEBUGDATABlob(error)
CURLOPT_DEBUGFUNCTIONCallback(error)
CURLOPT_DIRLISTONLYString(tick)
CURLOPT_DNS_CACHE_TIMEOUTInteger(tick)In seconds (see cURL documentation).
CURLOPT_DNS_USE_GLOBAL_CACHEBoolean(tick)
CURLOPT_DOH_SSL_VERIFYHOSTBoolean(tick)

CURLOPT_DOH_SSL_VERIFYPEER

Boolean(tick)

CURLOPT_DOH_SSL_VERIFYSTATUS

Integer(tick)
CURLOPT_DOH_URLString(tick)
CURLOPT_EGDSOCKETString(tick)
CURLOPT_ENCODINGString(tick)
CURLOPT_ERRORBUFFERBlob(error)
CURLOPT_EXPECT_100_TIMEOUT_MSInteger(tick)
CURLOPT_FAILONERRORBoolean(warning)
CURLOPT_FILETIMEBoolean(tick)
CURLOPT_FORBID_REUSEBoolean(tick)
CURLOPT_FRESH_CONNECTBoolean(tick)
CURLOPT_FTP_ACCOUNTString(tick)
CURLOPT_FTP_ALTERNATIVE_TO_USERString(tick)
CURLOPT_FTPAPPENDBoolean(tick)
CURLOPT_FTP_CREATE_MISSING_DIRSBoolean(tick)
CURLOPT_FTP_FILEMETHODConstant(tick)
CURLFTPMETHOD_DEFAULT
Same behavior as if no method is specified.
CURLFTPMETHOD_MULTICWD
cURL does a single CWD operation for each path part in the given URL.
CURLFTPMETHOD_NOCWD
cURL does no CWD at all.
CURLFTPMETHOD_SINGLECWD
libccURL does one CWD with the full target directory and then operates on the file "normally".
CURLOPT_FTPLISTONLYBoolean(tick)
CURLOPT_FTP_RESPONSE_TIMEOUTInteger(tick)In seconds (see cURL documentation).
CURLOPT_FTPPORTString(tick)
CURLOPT_FTP_SKIP_PASV_IPBoolean(tick)
CURLOPT_FTP_SSLConstant(tick)Deprecated. Use CURLOPT_USE_SSL instead.
CURLOPT_FTP_SSL_CCCBoolean(tick)false represents CURLFTPSSL_CCC_NONE, true is for CURLFTPSSL_CCC_PASSIVE .
CURLOPT_FTPSSLAUTHConstant(tick)
CURLFTPAUTH_DEFAULT
Allow cURL to decide.
CURLFTPAUTH_SSL
Try SSL first, and only if that fails try TLS.
CURLFTPAUTH_TLS
Try TLS first, and only if that fails try SSL.
CURLOPT_FTP_USE_EPRTBoolean(tick)
CURLOPT_FTP_USE_EPSVBoolean(tick)

CURLOPT_FTP_USE_PRET

String(tick)
CURLOPT_FOLLOWLOCATIONBoolean(warning)

CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS

Integer(tick)
CURLOPT_HAPROXYPROTOCOLString(tick)
CURLOPT_HEADERBoolean(tick)
CURLOPT_HEADERDATABlob(error)
CURLOPT_HEADERFUNCTIONCallback(error)
CURLOPT_HTTPAUTHConstant(tick) C URLAUTH_ANY cURL will automatically select the one it finds most secure.
CURLAUTH_ANYSAFE All except basic authentication. cURL will automatically select the one it finds most secure.
CURLAUTH_AWS_SIGV4 AWS V4 signature (see CURLOPT_AWS_SIGV4). 
CURLAUTH_BASIC basic authentication
CURLAUTH_DIGEST
digest authentication
CURLAUTH_GSSNEGOTIATE deprecated, use CURLAUTH_NEGOTIATE instead
CURLAUTH_NEGOTIATE
negotiate (SPNEGO) authentication
CURLAUTH_NTLM
NTLM authentication
CURLOPT_HTTPGETBoolean(tick)
CURLOPT_HTTPHEADERArray(String)(warning)
CURLOPT_HTTPPOSTOther(error)
CURLOPT_HTTPPROXYTUNNELBoolean(tick)
CURLOPT_HTTP_VERSIONConstant(tick)
CURL_HTTP_VERSION_NONE
cURL will use whatever HTTP version it thinks fit.
CURL_HTTP_VERSION_1_0
Enforce HTTP 1.0 requests.
CURL_HTTP_VERSION_1_1
Enforce HTTP 1.1 requests.
CURLOPT_HTTP200ALIASESArray(String)(tick)
CURLOPT_IGNORE_CONTENT_LENGTHBoolean(tick)
CURLOPT_INFILESIZEInteger(warning)
CURLOPT_INFILESIZE_LARGEInteger(warning)
CURLOPT_INTERFACEString(warning)
CURLOPT_IOCTLDATABlob(error)
CURLOPT_IOCTLFUNCTIONCallback(error)
CURLOPT_IPRESOLVEConstant(tick)
CURL_IPRESOLVE_WHATEVER
Resolves addresses to all IP versions that your system allows.
CURL_IPRESOLVE_V4
Resolve to IPv4 addresses.
CURL_IPRESOLVE_V6
Resolve to IPv6 addresses.

CURLOPT_ISSUERCERT

String(tick)
CURLOPT_KEYPASSWDString(tick)
CURLOPT_KRB4LEVELString(tick)
CURLOPT_LOCALPORTInteger(tick)
CURLOPT_LOCALPORTRANGEInteger(tick)
CURLOPT_LOW_SPEED_LIMITInteger(tick)
CURLOPT_LOW_SPEED_TIMEInteger(tick)In seconds (see cURL documentation).

CURLOPT_MAXAGE_CONN

Integer(tick)
CURLOPT_MAXCONNECTSInteger(tick)
CURLOPT_MAXFILESIZEInteger(tick)
CURLOPT_MAXFILESIZE_LARGEInteger(tick)

CURLOPT_MAXLIFETIME_CONN

Integer(tick)
CURLOPT_MAX_RECV_SPEED_LARGEInteger(tick)
CURLOPT_MAXREDIRSInteger(warning)
CURLOPT_MAX_SEND_SPEED_LARGEInteger(tick)
CURLOPT_MIME_OPTIONSConstant(tick)
CURLMIMEOPT_FORMESCAPE
Tells libcurl to escape multipart form field and file names using the backslash-escaping algorithm rather than percent-encoding (HTTP only). See cURL documentation for more.
CURLOPT_NETRCConstant(tick)
          
          
CURL_NETRC_OPTIONAL
The use of your ~/.netrc file is optional, and information in the URL is to be preferred.
CURL_NETRC_IGNORED
cURL will ignore the file and use only the information in the URL.
CURL_NETRC_REQUIRED
The use of the file is required, the information in the URL is ignored.
CURLOPT_NETRC_FILEString(tick)

CURLOPT_NEW_DIRECTORY_PERMS

Integer(tick)

CURLOPT_NEW_FILE_PERMS

Integer(tick)
CURLOPT_NOBODYBoolean(tick)
CURLOPT_NOPROGRESSBoolean(tick)
CURLPOT_NOPROXYString(tick)See cURL documentation.
CURLOPT_NOSIGNALBoolean(warning)
CURLOPT_QUOTEArray(String)(tick)

CURLOPT_PATH_AS_IS

String(tick)
CURLOPT_PINNEDPUBLICKEYString(tick)
CURLOPT_PORTInteger(tick)
CURLOPT_POSTBoolean(tick)
CURLOPT_POSTFIELDSBlob(error)
CURLOPT_POSTFIELDSIZEInteger(tick)
CURLOPT_POSTFIELDSIZE_LARGEInteger(tick)
CURLOPT_POSTQUOTEArray(String)(warning)

CURLOPT_POSTREDIR

String(tick)
CURLOPT_PREQUOTEArray(String)(tick)
CURLOPT_PREREQDATABlob(error)
CURLOPT_PREREQFUNCTIONCallback(error)
CURLOPT_PRIVATEBlob(error)
CURLOPT_PROGRESSDATABlob(error)
CURLOPT_PROGRESSFUNCTIONCallback(error)
CURLOPT_PROTOCOLS_STRString(error)
CURLOPT_PROXYString(warning)
CURLOPT_PROXYAUTHConstant(tick)
CURLAUTH_BASIC
basic authentication
CURLAUTH_DIGEST
digest authentication
CURLAUTH_NEGOTIATE
negotiate (SPNEGO) authentication
CURLAUTH_GSSNEGOTIATE
deprecated, use CURLAUTH_NEGOTIATE instead
CURLAUTH_NTLM
NTLM authentication
CURLAUTH_ANY
cURL will automatically select the one it finds most secure.
CURLAUTH_ANYSAFE
All except basic authentication. cURL will automatically select the one it finds most secure.

CURLOPT_PROXY_CAINFO

String(tick)

CURLOPT_PROXY_CAPATH

String(tick)
CURLOPT_PROXY_CRLFILEString(tick)

CURLOPT_PROXYHEADER

String(tick)

CURLOPT_PROXY_ISSUERCERT

String(tick)

CURLOPT_PROXY_KEYPASSWD

String(tick)

CURLOPT_PROXYPASSWORD

String(tick)

CURLOPT_PROXY_PINNEDPUBLICKEY

String(tick)
CURLOPT_PROXYPORTInteger(warning)

CURLOPT_PROXY_SERVICE_NAME

String(tick)
CURLOPT_PROXY_SSLCERTString(tick)

CURLOPT_PROXY_SSLCERTTYPE

String(tick)

CURLOPT_PROXY_SSL_CIPHER_LIST

String(tick)

CURLOPT_PROXY_SSLKEY

String(tick)

CURLOPT_PROXY_SSLKEYTYPE

String(tick)

CURLOPT_PROXY_SSL_OPTIONS

String(tick)

CURLOPT_PROXY_SSL_VERIFYHOST

String(tick)

CURLOPT_PROXY_SSL_VERIFYPEER

String(tick)

CURLOPT_PROXY_SSLVERSION

String(tick)

CURLOPT_PROXY_TLS13_CIPHERS

String(tick)

CURLOPT_PROXY_TRANSFER_MODE

String(tick)
CURLOPT_PROXYTYPEConstant(warning)
          
          
CURLPROXY_HTTP
HTTP proxy
CURLPROXY_SOCKS4
SOCKS4 proxy
CURLPROXY_SOCKS5
SOCKS5 proxy

CURLOPT_PROXYUSERNAME

String(tick)
CURLOPT_PROXYUSERPWDString(warning)
CURLOPT_PUTBoolean(tick)
CURLOPT_QUICK_EXITBoolean(error)
CURLOPT_RANDOM_FILEString(tick)
CURLOPT_RANGEString(tick)
CURLOPT_READDATABlob(error)
CURLOPT_READFUNCTIONCallback(error)
CURLOPT_REDIR_PROTOCOLS_STRString(error)
CURLOPT_REFERERString(tick)

CURLOPT_RESOLVE

String(tick)
CURLOPT_RESUME_FROMInteger(tick)
CURLOPT_RESUME_FROM_LARGEInteger(tick)

CURLOPT_SERVER_RESPONSE_TIMEOUT

Integer(tick)

CURLOPT_SERVICE_NAME

String(tick)
CURLOPT_SOCKS5_AUTHString(tick)

CURLOPT_SOCKS5_GSSAPI_NEC

String(tick)

CURLOPT_SOCKS5_GSSAPI_SERVICE

String(tick)
CURLOPT_SSH_AUTH_TYPESConstant(tick)CURLSSH_AUTH_KEYBOARD  is not implemented for obvious reasons.
CURLOPT_SSH_HOSTKEYDATABlob(error)
CURLOPT_SSH_HOSTKEYFUNCTIONCallback(error)
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256String(tick)
CURLOPT_SSH_PUBLIC_KEYFILEString(tick)
CURLOPT_SSH_PUBLIC_KEY_MD5String(tick)
CURLOPT_SSH_PRIVATE_KEYFILEString(tick)
CURLOPT_SHAREFileHandle(error)
CURLOPT_SSLCERTString(warning)
CURLOPT_SSLCERTTYPEString(warning)
CURLOPT_SSLCERTPASSWDString(tick)
CURLOPT_SSL_CIPHER_LISTString(tick)
CURLOPT_SSL_CTX_DATABlob(error)
CURLOPT_SSL_CTX_FUNCTIONCallback(error)
CURLOPT_SSLENGINEString(tick)
CURLOPT_SSLENGINE_DEFAULTNone(tick)
CURLOPT_SSLKEYString(warning)
CURLOPT_SSLKEYTYPEString(warning)
CURLOPT_SSLKEYPASSWDString(warning)
CURLOPT_SSL_OPTIONSConstant(tick)
CURLSSLOPT_ALLOW_BEAST 
Tells libcurl to not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols. See cURL documentation for more.
CURLOPT_SSL_SESSIOID_CACHEBoolean(tick)
CURLOPT_SSL_VERIFYHOSTInteger(warning)
CURLOPT_SSL_VERIFYPEERBoolean(warning)
CURLOPT_SSL_VERIFYSTATUSInteger(tick)

CURLOPT_SSLVERSIONConstant(tick)
CURL_SSLVERSION_DEFAULT       
Default action. This will attempt to figure out the remote SSL protocol version.
CURL_SSLVERSION_TLSv1
Use TLSv1.x.
CURL_SSLVERSION_SSLv2
Use SSLv2.
CURL_SSLVERSION_SSLv3
Use SSLv3.
CURLOPT_STDERRFileHandle(error)
CURLOPT_TCP_NODELAYBoolean(tick)
CURLOPT_TELNETOPTIONSArray(String)(tick)
CURLOPT_TIMECONDITIONConstant(tick)
CURL_TIMECOND_IFMODSINCE
CURL_TIMECOND_IFUNMODSINCE
CURLOPT_TIMEOUTInteger(tick)In seconds (see cURL documentation).
CURLOPT_TIMEOUT_MSInteger(tick)In milliseconds (see cURL documentation).
CURLOPT_TIMEVALUEInteger(tick)

CURLOPT_TIMEVALUE_LARGE

Integer(tick)

CURLOPT_TLS13_CIPHERS

String(tick)
CURLOPT_TRANSFERTEXTBoolean(tick)
CURLOPT_UNRESTRICTED_AUTHBoolean(tick)
CURLOPT_UPLOADBoolean(warning)
CURLOPT_URLString(warning)
CURLOPT_USE_SSLConstant(tick)
CURLUSESSL_NONE  
              
 Do not attempt to use SSL.
CURLUSESSL_TRY
Try using SSL, proceed as normal otherwise.
CURLUSESSL_CONTROL
Require SSL for the control connection
CURLUSESSL_ALL
Require SSL for all communication.
CURLOPT_USERAGENTString(tick)

CURLOPT_USERPWDString(warning)

CURLOPT_VERBOSEBoolean(warning)

CURLOPT_WRITEDATABlob(error)

CURLOPT_WRITEFUNCTIONCallback(error)

CURLOPT_WS_OPTIONSBitmask(error)

CURLOPT_XOAUTH2_BEARER

String(tick)

On this Page:
  • No labels