Platforms to show: All Mac Windows Linux Cross-Platform


Type Topic Plugin Version macOS Windows Linux iOS Targets
class CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
A class to wrap libCURL.


// download here
d.OptionURL = URL

// if you use SSL, maybe put in a certificate or disable verification?
d.OptionSSLVerifyHost = 0
d.OptionSSLVerifyPeer = 0

// run download
dim e as integer = d.Perform

// check result
Dim data As String = d.OutputData
Dim DebugMessage As String = d.DebugMessages // check in debugger on error

ResultText.text="Result: "+str(e) // 0 = Okay, others are error codes, so check debug messsages

We have three variants:

CURLS* classes include a static CURL library with SSL and SSH.
CURLN* classes include a static CURL library with native SSL on Mac and Windows.
CURL* classes without S need you to supply your own CURL library.

All variants can load a custom CURL library or use the one from the system on Mac and Linux.
If no library is loaded or included, the plugin will try to load the system one in constructor.

from the website libCURL website:

libCURL is a free and easy-to-use client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE and LDAP. libCURL supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume, http proxy tunneling and more!

libCURL is highly portable, it builds and works identically on numerous platforms, including Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS and more...

libCURL is free, thread-safe, IPv6 compatible, feature rich, well supported, fast, thoroughly documented and is already used by many known, big and successful companies and numerous applications.

On Linux you may need to install libraries like ldap: apt-get install libldap-2.4.2:i386

This class has no sub classes.

Some methods using this class:

Some properties using for this class:

Some events using this class:

Some examples using this class:

Blog Entries

Xojo Developer Magazine


Release notes

  • Version 24.0
    • Fixed OpenMTInputFile method in CURLSMBS class to remove InputData first.
    • Fixed SetupAWS and SetupOAuth in CURLSMBS class to reset NoBody flag if new transfer is not head.
  • Version 23.4
    • Added ProcessRelativeURL method to CURLSMBS class.
  • Version 23.3
  • Version 23.2
    • Changed default for OptionConnectionTimeout in CURLSMBS class to 10 seconds (unless you change it) to avoid long stalls in your application of 2 minutes when server is not reachable.
  • Version 23.0
    • Added DebugMessages and CollectDebugMessages properties to CURLSMBS class as the new names for DebugData and CollectDebugData. Old names stay valid, but get deprecated.
    • Added Headers and CollectDebugMessages properties to CURLSMBS class as the new names for HeaderData and CollectHeaderData. Old names stay valid, but get deprecated.
    • Added PATCH support for SetupAWS function in CURLSMBS class.
    • Added WebSocketMeta, WebSocketReceive and WebSocketSend to CURLSMBS class.
    • Changed OptionConnectOnly to integer in CURLSMBS class.
    • Changed OutputData in CURLSMBS class and similar to raise OutOfBoundsException if data is too big (>2 GB) to fit into a string.
    • Deprecated GetInfoLastSocket property in CURLSMBS class in favor of GetInfoActiveSocket property.
    • Deprecated GetInfoProtocol property in CURLSMBS class.
    • Deprecated OptionProtocols for CURLSMBS class in favor of OptionProtocolsString.
    • Deprecated OptionPut for CURLSMBS class in favor of OptionUpload.
    • Deprecated OptionRedirProtocols for CURLSMBS class in favor of OptionRedirProtocolsString.
    • Deprecated OptionSocks5GSSAPIService, OptionSSLEnableNPN, OptionEGDSocket and OptionRandomFile properties in CURLSMBS class.
    • Fixed an issue for CURLSMBS class, where the LastError was not updated by Perform called on CURLSMultiMBS class.
  • Version 22.4
    • Added OptionMimeOptions, OptionMaxLifeTimeConnection and OptionSSHHostPublicKeySHA256 properties to CURLSMBS class.
    • Added zstd support for CURLSMBS class.
    • Removed kError_CONV_FAILED constant in CURLSMBS class.
    • Renamed OptionFTPResponseTimeout property to OptionServerResponseTimeout in CURLSMBS class. (old mame stays valid, but deprecated)
  • Version 22.3
    • Added GetInfoCAPath and GetInfoCAInfo methods to CURLSMBS class.
  • Version 22.1
    • Deprecated OptionSSLEngine and OptionSSLEngineDefault properties in CURLSMBS class since you don't need those ever.
  • Version 21.4
    • Added HEAD as verb for SetupAWS and SetupOAuth functions in CURLSMBS class.
    • Fixed OptionFileTime and OptionUnrestrictedAuth properties for CURLSMBS class.

The items on this page are in the following plugins: MBS CURL Plugin.


The biggest plugin in space...