Skip to main content
Skip table of contents

Setting cURL Options on the URL Adapter

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

Option

Data Type

Remarks

E2E_FORBID_REUSE

Boolean

If 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 (refer to 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 Type

xUML Base Type

Comment

Array(String)

Array of Strings

You must use a cast() to use this type, because the URL option value is of type String.

Bitmask

String

It is a string containing a string of cURL options separated by the pipe character ("|").

Blob

n/a

Is not supported.

Boolean

String

You can use false or 0 for false and true or 1 for true.

Callback

n/a

Is not supported.

Constant

String

Use 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.

FileHandle

n/a

Is not supported.

Integer

String

String will be converted to a number.

String

String

List of Supported Options

Option

Data Type

Supported

Supported cURL Constants / Remarks

CURLOPT_ACCEPT_ENCODING

String

(tick)

CURLOPT_ACCEPTTIMEOUT_MS

Integer

(tick)

CURLOPT_APPEND

String

(tick)

CURLOPT_AUTOREFERER

Boolean

(tick)

CURLOPT_AWS_SIGV4

String

(tick)

CURLOPT_BUFFERSIZE

Integer

(tick)

CURLOPT_CAINFO

String

(warning)

CURLOPT_CAPATH

String

(tick)

CURLOPT_CA_CACHE_TIMEOUT

Integer

(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_ONLY

Boolean

(tick)

CURLOPT_CRLF

Boolean

(tick)

CURLOPT_CRLFILE

String

(tick)

CURLOPT_CONV_FROM_NETWORK_FUNCTION

Callback

(error)

CURLOPT_CONV_FROM_UTF8_FUNCTION

Callback

(error)

CURLOPT_CONV_TO_NETWORK_FUNCTION

Callback

(error)

CURLOPT_COOKIE

String

(tick)

CURLOPT_COOKIEFILE

String

(tick)

CURLOPT_COOKIEJAR

String

(tick)

CURLOPT_COOKIELIST

String

(tick)

CURLOPT_COOKIESESSION

Boolean

(tick)

CURLOPT_CUSTOMREQUEST

String

(warning)

CURLOPT_DEBUGDATA

Blob

(error)

CURLOPT_DEBUGFUNCTION

Callback

(error)

CURLOPT_DIRLISTONLY

String

(tick)

CURLOPT_DNS_CACHE_TIMEOUT

Integer

(tick)

In seconds (see cURL documentation).

CURLOPT_DNS_USE_GLOBAL_CACHE

Boolean

(tick)

CURLOPT_DOH_SSL_VERIFYHOST

Boolean

(tick)

CURLOPT_DOH_SSL_VERIFYPEER

Boolean

(tick)

CURLOPT_DOH_SSL_VERIFYSTATUS

Integer

(tick)

CURLOPT_DOH_URL

String

(tick)

CURLOPT_EGDSOCKET

String

(tick)

CURLOPT_ENCODING

String

(tick)

CURLOPT_ERRORBUFFER

Blob

(error)

CURLOPT_EXPECT_100_TIMEOUT_MS

Integer

(tick)

CURLOPT_FAILONERROR

Boolean

(warning)

CURLOPT_FILETIME

Boolean

(tick)

CURLOPT_FORBID_REUSE

Boolean

(tick)

CURLOPT_FRESH_CONNECT

Boolean

(tick)

CURLOPT_FTP_ACCOUNT

String

(tick)

CURLOPT_FTP_ALTERNATIVE_TO_USER

String

(tick)

CURLOPT_FTPAPPEND

Boolean

(tick)

CURLOPT_FTP_CREATE_MISSING_DIRS

Boolean

(tick)

CURLOPT_FTP_FILEMETHOD

Constant

(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_FTPLISTONLY

Boolean

(tick)

CURLOPT_FTP_RESPONSE_TIMEOUT

Integer

(tick)

In seconds (see cURL documentation).

CURLOPT_FTPPORT

String

(tick)

CURLOPT_FTP_SKIP_PASV_IP

Boolean

(tick)

CURLOPT_FTP_SSL

Constant

(tick)

Deprecated. Use CURLOPT_USE_SSL instead.

CURLOPT_FTP_SSL_CCC

Boolean

(tick)

false represents CURLFTPSSL_CCC_NONE, true is for CURLFTPSSL_CCC_PASSIVE.

CURLOPT_FTPSSLAUTH

Constant

(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_EPRT

Boolean

(tick)

CURLOPT_FTP_USE_EPSV

Boolean

(tick)

CURLOPT_FTP_USE_PRET

String

(tick)

CURLOPT_FOLLOWLOCATION

Boolean

(warning)

CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS

Integer

(tick)

CURLOPT_HAPROXYPROTOCOL

String

(tick)

CURLOPT_HEADER

Boolean

(tick)

CURLOPT_HEADERDATA

Blob

(error)

CURLOPT_HEADERFUNCTION

Callback

(error)

CURLOPT_HTTPAUTH

Constant

(tick)

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.

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_HTTPGET

Boolean

(tick)

CURLOPT_HTTPHEADER

Array(String)

(warning)

CURLOPT_HTTPPOST

Other

(error)

CURLOPT_HTTPPROXYTUNNEL

Boolean

(tick)

CURLOPT_HTTP_VERSION

Constant

(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_HTTP200ALIASES

Array(String)

(tick)

CURLOPT_IGNORE_CONTENT_LENGTH

Boolean

(tick)

CURLOPT_INFILESIZE

Integer

(warning)

CURLOPT_INFILESIZE_LARGE

Integer

(warning)

CURLOPT_INTERFACE

String

(warning)

CURLOPT_IOCTLDATA

Blob

(error)

CURLOPT_IOCTLFUNCTION

Callback

(error)

CURLOPT_IPRESOLVE

Constant

(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_KEYPASSWD

String

(tick)

CURLOPT_KRB4LEVEL

String

(tick)

CURLOPT_LOCALPORT

Integer

(tick)

CURLOPT_LOCALPORTRANGE

Integer

(tick)

CURLOPT_LOW_SPEED_LIMIT

Integer

(tick)

CURLOPT_LOW_SPEED_TIME

Integer

(tick)

In seconds (see cURL documentation).

CURLOPT_MAXAGE_CONN

Integer

(tick)

CURLOPT_MAXCONNECTS

Integer

(tick)

CURLOPT_MAXFILESIZE

Integer

(tick)

CURLOPT_MAXFILESIZE_LARGE

Integer

(tick)

CURLOPT_MAXLIFETIME_CONN

Integer

(tick)

CURLOPT_MAX_RECV_SPEED_LARGE

Integer

(tick)

CURLOPT_MAXREDIRS

Integer

(warning)

CURLOPT_MAX_SEND_SPEED_LARGE

Integer

(tick)

CURLOPT_MIME_OPTIONS

Constant

(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_NETRC

Constant

(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_FILE

String

(tick)

CURLOPT_NEW_DIRECTORY_PERMS

Integer

(tick)

CURLOPT_NEW_FILE_PERMS

Integer

(tick)

CURLOPT_NOBODY

Boolean

(tick)

CURLOPT_NOPROGRESS

Boolean

(tick)

CURLPOT_NOPROXY

String

(tick)

See cURL documentation.

CURLOPT_NOSIGNAL

Boolean

(warning)

CURLOPT_QUOTE

Array(String)

(tick)

CURLOPT_PATH_AS_IS

String

(tick)

CURLOPT_PINNEDPUBLICKEY

String

(tick)

CURLOPT_PORT

Integer

(tick)

CURLOPT_POST

Boolean

(tick)

CURLOPT_POSTFIELDS

Blob

(error)

CURLOPT_POSTFIELDSIZE

Integer

(tick)

CURLOPT_POSTFIELDSIZE_LARGE

Integer

(tick)

CURLOPT_POSTQUOTE

Array(String)

(warning)

CURLOPT_POSTREDIR

String

(tick)

CURLOPT_PREQUOTE

Array(String)

(tick)

CURLOPT_PREREQDATA

Blob

(error)

CURLOPT_PREREQFUNCTION

Callback

(error)

CURLOPT_PRIVATE

Blob

(error)

CURLOPT_PROGRESSDATA

Blob

(error)

CURLOPT_PROGRESSFUNCTION

Callback

(error)

CURLOPT_PROTOCOLS_STR

String

(error)

CURLOPT_PROXY

String

(warning)

CURLOPT_PROXYAUTH

Constant

(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_CRLFILE

String

(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_PROXYPORT

Integer

(warning)

CURLOPT_PROXY_SERVICE_NAME

String

(tick)

CURLOPT_PROXY_SSLCERT

String

(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_PROXYTYPE

Constant

(warning)

CURLPROXY_HTTP

HTTP proxy

CURLPROXY_SOCKS4

SOCKS4 proxy

CURLPROXY_SOCKS5

SOCKS5 proxy

CURLOPT_PROXYUSERNAME

String

(tick)

CURLOPT_PROXYUSERPWD

String

(warning)

CURLOPT_PUT

Boolean

(tick)

CURLOPT_QUICK_EXIT

Boolean

(error)

CURLOPT_RANDOM_FILE

String

(tick)

CURLOPT_RANGE

String

(tick)

CURLOPT_READDATA

Blob

(error)

CURLOPT_READFUNCTION

Callback

(error)

CURLOPT_REDIR_PROTOCOLS_STR

String

(error)

CURLOPT_REFERER

String

(tick)

CURLOPT_RESOLVE

String

(tick)

CURLOPT_RESUME_FROM

Integer

(tick)

CURLOPT_RESUME_FROM_LARGE

Integer

(tick)

CURLOPT_SERVER_RESPONSE_TIMEOUT

Integer

(tick)

CURLOPT_SERVICE_NAME

String

(tick)

CURLOPT_SOCKS5_AUTH

String

(tick)

CURLOPT_SOCKS5_GSSAPI_NEC

String

(tick)

CURLOPT_SOCKS5_GSSAPI_SERVICE

String

(tick)

CURLOPT_SSH_AUTH_TYPES

Constant

(tick)

CURLSSH_AUTH_KEYBOARD  is not implemented for obvious reasons.

CURLOPT_SSH_HOSTKEYDATA

Blob

(error)

CURLOPT_SSH_HOSTKEYFUNCTION

Callback

(error)

CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256

String

(tick)

CURLOPT_SSH_PUBLIC_KEYFILE

String

(tick)

CURLOPT_SSH_PUBLIC_KEY_MD5

String

(tick)

CURLOPT_SSH_PRIVATE_KEYFILE

String

(tick)

CURLOPT_SHARE

FileHandle

(error)

CURLOPT_SSLCERT

String

(warning)

CURLOPT_SSLCERTTYPE

String

(warning)

CURLOPT_SSLCERTPASSWD

String

(tick)

CURLOPT_SSL_CIPHER_LIST

String

(tick)

CURLOPT_SSL_CTX_DATA

Blob

(error)

CURLOPT_SSL_CTX_FUNCTION

Callback

(error)

CURLOPT_SSLENGINE

String

(tick)

CURLOPT_SSLENGINE_DEFAULT

None

(tick)

CURLOPT_SSLKEY

String

(warning)

CURLOPT_SSLKEYTYPE

String

(warning)

CURLOPT_SSLKEYPASSWD

String

(warning)

CURLOPT_SSL_OPTIONS

Constant

(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_CACHE

Boolean

(tick)

CURLOPT_SSL_VERIFYHOST

Integer

(warning)

CURLOPT_SSL_VERIFYPEER

Boolean

(warning)

CURLOPT_SSL_VERIFYSTATUS

Integer

(tick)

CURLOPT_SSLVERSION

Constant

(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_STDERR

FileHandle

(error)

CURLOPT_TCP_NODELAY

Boolean

(tick)

CURLOPT_TELNETOPTIONS

Array(String)

(tick)

CURLOPT_TIMECONDITION

Constant

(tick)

CURL_TIMECOND_IFMODSINCE

CURL_TIMECOND_IFUNMODSINCE

CURLOPT_TIMEOUT

Integer

(tick)

In seconds (see cURL documentation).

CURLOPT_TIMEOUT_MS

Integer

(tick)

In milliseconds (see cURL documentation).

CURLOPT_TIMEVALUE

Integer

(tick)

CURLOPT_TIMEVALUE_LARGE

Integer

(tick)

CURLOPT_TLS13_CIPHERS

String

(tick)

CURLOPT_TRANSFERTEXT

Boolean

(tick)

CURLOPT_UNRESTRICTED_AUTH

Boolean

(tick)

CURLOPT_UPLOAD

Boolean

(warning)

CURLOPT_URL

String

(warning)

CURLOPT_USE_SSL

Constant

(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_USERAGENT

String

(tick)

CURLOPT_USERPWD

String

(warning)

CURLOPT_VERBOSE

Boolean

(warning)

CURLOPT_WRITEDATA

Blob

(error)

CURLOPT_WRITEFUNCTION

Callback

(error)

CURLOPT_WS_OPTIONS

Bitmask

(error)

CURLOPT_XOAUTH2_BEARER

String

(tick)

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.