Platforms to show: All Mac Windows Linux Cross-Platform
CURLSMBS class
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
class | CURL | MBS CURL Plugin | 9.8 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
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:
https://curl.haxx.se/libcurl/
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
- 12 events
- event ChunkBegin(FileInfo as CURLSFileInfoMBS, Remains as Integer) as Integer
- event ChunkEnd(FileInfo as CURLSFileInfoMBS, Remains as Integer) as Integer
- event DebugMessage(infotype as Integer, data as string, dataSize as Integer)
- event FileNameMatch(Pattern as String, Name as String) as Integer
- event Finished(Result as Integer)
- event Header(data as string, dataSize as Integer) as Integer
- event Progress(dltotal as Int64, dlnow as Int64, ultotal as Int64, ulnow as Int64, percent as Double) as boolean
- event Read(count as Integer) as string
- event RestartRead() as boolean
- event Seek(pos as Int64, whence as Integer) as Integer
- event SSHKey(KnownKey as string, KnownKeyLength as Integer, KnownKeyType as Integer, FoundKey as string, FoundKeyLength as Integer, FoundKeyType as Integer, MatchStatus as Integer) as Integer
- event Write(data as string, dataSize as Integer) as Integer
- 260 properties
- property Cancel as Boolean
- property CollectDebugMessages as Boolean
- property CollectHeaders as Boolean
- property CollectOutputData as Boolean
- property DebugMessages as String
- property DebugWithData as Boolean
- property Handle as Integer
- property HeaderData as String
- property InputData as String
- property Lasterror as Integer
- property LastErrorMessage as String
- property LasterrorText as String
- property OptionAbstractUnixSocket as String
- property OptionAcceptEncoding as String
- property OptionAcceptTimeoutMS as Integer
- property OptionAddressScope as Integer
- property OptionAppend as Boolean
- property OptionAutoReferer as Boolean
- property OptionAWSSigV4 as String
- property OptionBufferSize as Integer
- property OptionCACacheTimeout as Integer
- property OptionCAInfo as String
- property OptionCAInfoBlob as String
- property OptionCAPath as String
- property OptionCertInfo as boolean
- property OptionConnectionTimeout as Integer
- property OptionConnectionTimeOutMS as Integer
- property OptionConnectOnly as Integer
- property OptionCookie as String
- property OptionCookieFile as String
- property OptionCookieJar as String
- property OptionCookieList as String
- property OptionCookieSession as Boolean
- property OptionCRLF as Boolean
- property OptionCRLFile as String
- property OptionCustomRequest as String
- property OptionDefaultProtocol as String
- property OptionDirListOnly as Boolean
- property OptionDisableUserNameInURL as Boolean
- property OptionDNSCacheTimeout as Integer
- property OptionDNSInterface as String
- property OptionDNSLocalIPv4 as String
- property OptionDNSLocalIPv6 as String
- property OptionDNSServers as String
- property OptionDNSShuffleAddresses as Boolean
- property OptionDOHSSLVerifyHost as Integer
- property OptionDOHSSLVerifyPeer as Integer
- property OptionDOHSSLVerifyStatus as Integer
- property OptionDOHURL as String
- property OptionExpect100TimeoutMS as Integer
- property OptionFailOnError as Boolean
- property OptionFileTime as Boolean
- property OptionFollowLocation as Boolean
- property OptionForbidReuse as Boolean
- property OptionForbitReuse as Boolean
- property OptionFreshConnect as Boolean
- property OptionFTPAccount as String
- property OptionFTPAlternativeToUser as String
- property OptionFTPCreateMissingDirs as Integer
- property OptionFTPFileMethod as Integer
- property OptionFTPPort as String
- property OptionFTPSkipPasvIP as Boolean
- property OptionFTPSSLAuth as Integer
- property OptionFTPSSLCCC as Integer
- property OptionFTPUseEPRT as Boolean
- property OptionFTPUseEPSV as Boolean
- property OptionFTPusePret as Boolean
- property OptionGet as Boolean
- property OptionGSSAPIDelegation as Integer
- property OptionHappyEyeballsTimeOutMS as Integer
- property OptionHAProxyProtocol as Boolean
- property OptionHeader as Boolean
- property OptionHeaderOptions as Integer
- property OptionHTTPAuth as Integer
- property OptionHTTPContentDecoding as Integer
- property OptionHTTPProxyTunnel as Boolean
- property OptionHTTPTransferDecoding as Integer
- property OptionHTTPVersion as Integer
- property OptionIgnoreContentLength as Boolean
- property OptionInFileSize as Int64
- property OptionInterface as String
- property OptionIPResolve as Integer
- property OptionIssuerCert as String
- property OptionIssuerCertBlob as String
- property OptionKeepSendingOnError as Integer
- property OptionKeyPassword as String
- property OptionKRBLevel as String
- property OptionLocalPort as Integer
- property OptionLocalPortRange as Integer
- property OptionLoginOptions as String
- property OptionLowSpeedLimit as Integer
- property OptionLowSpeedTime as Integer
- property OptionMailAuth as String
- property OptionMailFrom as String
- property OptionMaxAgeConn as Integer
- property OptionMaxConnects as Integer
- property OptionMaxFileSize as Int64
- property OptionMaxLifeTimeConnection as Integer
- property OptionMaxRecvSpeed as Int64
- property OptionMaxRedirs as Integer
- property OptionMaxSendSpeed as Int64
- property OptionMimeOptions as Integer
- property OptionNetRC as Integer
- property OptionNetRCFile as String
- property OptionNewDirectoryPerms as Integer
- property OptionNewFilePerms as Integer
- property OptionNoBody as Boolean
- property OptionNoProxy as String
- property OptionNoSignal as Integer
- property OptionPassword as String
- property OptionPathAsIs as Boolean
- property OptionPinnedPublicKey as String
- property OptionPipeWait as Boolean
- property OptionPort as Integer
- property OptionPost as Boolean
- property OptionPostFields as String
- property OptionPostFieldSize as Int64
- property OptionPostRedir as Integer
- property OptionPreProxy as String
- property OptionProtocolsString as String
- property OptionProxy as String
- property OptionProxyAuth as Integer
- property OptionProxyCAInfo as String
- property OptionProxyCAInfoBlob as String
- property OptionProxyCAPath as String
- property OptionProxyCRLFile as String
- property OptionProxyIssuerCert as String
- property OptionProxyIssuerCertBlob as String
- property OptionProxyKeyPassword as String
- property OptionProxyPassword as String
- property OptionProxyPinnedPublicKey as String
- property OptionProxyPort as Integer
- property OptionProxyServiceName as String
- property OptionProxySSLCert as String
- property OptionProxySSLCertBlob as String
- property OptionProxySSLCertType as String
- property OptionProxySSLCipherList as String
- property OptionProxySSLKey as String
- property OptionProxySSLKeyBlob as String
- property OptionProxySSLKeyType as String
- property OptionProxySSLOptions as Integer
- property OptionProxySSLVerifyHost as Integer
- property OptionProxySSLVerifyPeer as Integer
- property OptionProxySSLVersion as Integer
- property OptionProxyTLS13Ciphers as String
- property OptionProxyTLSAuthPassword as String
- property OptionProxyTLSAuthType as String
- property OptionProxyTLSAuthUsername as String
- property OptionProxyTransferMode as Integer
- property OptionProxyType as Integer
- property OptionProxyUsername as String
- property OptionQuickExit as Integer
- property OptionRange as String
- property OptionReditProtocolsString as String
- property OptionReferer as String
- property OptionRequestTarget as String
- property OptionResumeFrom as Int64
- property OptionRTSPClientCSEQ as Integer
- property OptionRTSPRequest as Integer
- property OptionRTSPServerCSEQ as Integer
- property OptionRTSPSessionID as String
- property OptionRTSPStreamURI as String
- property OptionRTSPTransport as String
- property OptionSASLAuthZID as String
- property OptionSASLIR as Integer
- property OptionServerResponseTimeout as Integer
- property OptionServiceName as String
- property OptionSocks5Auth as Integer
- property OptionSocks5GSSAPINEC as Boolean
- property OptionSSHAuthTypes as Integer
- property OptionSSHCompression as Boolean
- property OptionSSHHostPublicKeyMD5 as String
- property OptionSSHHostPublicKeySHA256 as String
- property OptionSSHKnownhosts as String
- property OptionSSHPrivateKeyfile as String
- property OptionSSHPublicKeyfile as String
- property OptionSSLCert as String
- property OptionSSLCertBlob as String
- property OptionSSLCertType as String
- property OptionSSLCipherList as String
- property OptionSSLEnableALPN as Integer
- property OptionSSLFalseStart as Integer
- property OptionSSLKey as String
- property OptionSSLKeyBlob as String
- property OptionSSLKeyType as String
- property OptionSSLOptions as Integer
- property OptionSSLSessionIDCache as Boolean
- property OptionSSLVerifyHost as Integer
- property OptionSSLVerifyPeer as Integer
- property OptionSSLVerifyStatus as Integer
- property OptionSSLVersion as Integer
- property OptionStreamDepends as CURLSMBS
- property OptionStreamDependsE as CURLSMBS
- property OptionStreamWeight as Integer
- property OptionSuppressConnectHeaders as Boolean
- property OptionTCPFastOpen as Integer
- property OptionTCPKeepAlive as Boolean
- property OptionTCPKeepIdle as Integer
- property OptionTCPKeepInterval as Integer
- property OptionTCPNoDelay as Boolean
- property OptionTFTPBlockSize as Integer
- property OptionTFTPNoOptions as Integer
- property OptionTimeCondition as Integer
- property OptionTimeOut as Integer
- property OptionTimeOutMS as Integer
- property OptionTimeValue as Integer
- property OptionTLS13Ciphers as String
- property OptionTLSAuthPassword as String
- property OptionTLSAuthType as String
- property OptionTLSAuthUsername as String
- property OptionTransferEncoding as Boolean
- property OptionTransferText as Boolean
- property OptionUnixSocketPath as String
- property OptionUnrestrictedAuth as Boolean
- property OptionUpkeepIntervalMS as Integer
- property OptionUpload as Boolean
- property OptionUploadBufferSize as Integer
- property OptionURL as String
- property OptionUserAgent as String
- property OptionUsername as String
- property OptionUseSSL as Integer
- property OptionVerbose as Boolean
- property OptionWildCardMatch as Boolean
- property OptionXOAuth2Bearer as String
- property OutputData as String
- property Paused as Boolean
- property ProgressDownloadCurrent as Int64
- property ProgressDownloadTotal as Int64
- property ProgressPercent as Double
- property ProgressUploadCurrent as Int64
- property ProgressUploadTotal as Int64
- property Tag as Variant
- property WebSocketOptions as Integer
- property YieldTime as Boolean
- 4 shared properties
- shared property APILoaded as Boolean
- shared property LibraryUsed as String
- shared property LibVersion as string
- shared property Version as CURLSVersionMBS
- 114 methods
- method AddMimePart as CURLSMimePartMBS
- method ClearData
- method CloseMTDebugOutputFile
- method CloseMTHeaderOutputFile
- method CloseMTInputFile
- method CloseMTOutputFile
- method CreateMTDebugOutputFile(file as folderitem) as boolean
- method CreateMTDebugOutputFile(Path as String) as boolean
- method CreateMTHeaderOutputFile(file as folderitem) as boolean
- method CreateMTHeaderOutputFile(Path as String) as boolean
- method CreateMTOutputFile(file as folderitem) as boolean
- method CreateMTOutputFile(Path as String) as boolean
- method FileInfos as CURLSFileInfoMBS()
- method FinishMime
- method FormAdd(FormOption1 as Integer, Text1 as string, FormOption2 as Integer, FormOptions() as Integer, Texts() as string)
- method FormAdd(FormOption1 as Integer, Text1 as string, FormOption2 as Integer, Text2 as string)
- method FormAdd(FormOption1 as Integer, Text1 as string, FormOption2 as Integer, Text2 as string, FormOption3 as Integer, Number3 as Integer)
- method FormAdd(FormOption1 as Integer, Text1 as string, FormOption2 as Integer, Text2 as string, FormOption3 as Integer, Number3 as Integer, FormOption4 as Integer, Number4 as Integer)
- method FormAdd(FormOption1 as Integer, Text1 as string, FormOption2 as Integer, Text2 as string, FormOption3 as Integer, Number3 as Integer, FormOption4 as Integer, Text4 as string)
- method FormAdd(FormOption1 as Integer, Text1 as string, FormOption2 as Integer, Text2 as string, FormOption3 as Integer, Text3 as string)
- method FormAdd(FormOption1 as Integer, Text1 as string, FormOption2 as Integer, Text2 as string, FormOption3 as Integer, Text3 as string, FormOption4 as Integer, Number4 as Integer)
- method FormAdd(FormOption1 as integer, Text1 as string, FormOption2 as integer, Text2 as string, FormOption3 as integer, Text3 as string, FormOption4 as integer, Number4 as integer, FormOption5 as integer, Text5 as string)
- method FormAddField(fieldName as String, fieldValue as String, ContentType as String = "")
- method FormAddFile(fieldName as String, fileName as String, fileContent as string, ContentType as String = "")
- method FormClear
- method FormData as String
- method FormFinish
- method GetInfoActiveSocket as integer
- method GetInfoAppConnectTime as Double
- method GetInfoCAInfo as string
- method GetInfoCAPath as string
- method GetInfoCertInfo as CURLSListMBS()
- method GetInfoConditionUnmet as Integer
- method GetInfoConnectTime as Double
- method GetInfoContentLengthDownload as Double
- method GetInfoContentLengthUpload as Double
- method GetInfoContentType as string
- method GetInfoCookieList as CURLSListMBS
- method GetInfoEffectiveMethod as string
- method GetInfoEffectiveURL as string
- method GetInfoFileTime as Integer
- method GetInfoFTPEntryPath as string
- method GetInfoHeaderSize as Integer
- method GetInfoHTTPAuthAvail as Integer
- method GetInfoHTTPConnectCode as Integer
- method GetInfoHTTPVersion as integer
- method GetInfoLocalIP as string
- method GetInfoLocalPort as Integer
- method GetInfoNameLookupTime as Double
- method GetInfoNumConnects as Integer
- method GetInfoOSErrno as Integer
- method GetInfoPreTransferTime as Double
- method GetInfoPrimaryIP as string
- method GetInfoPrimaryPort as Integer
- method GetInfoProxyAuthAvail as Integer
- method GetInfoProxyError as integer
- method GetInfoProxySSLVerifyResult as integer
- method GetInfoRedirectCount as Integer
- method GetInfoRedirectTime as Double
- method GetInfoRedirectURL as string
- method GetInfoReferer as string
- method GetInfoRequestSize as Integer
- method GetInfoResponseCode as Integer
- method GetInfoRetryAfter as integer
- method GetInfoRTSPClientCSEQ as Integer
- method GetInfoRTSPCSEQRecv as Integer
- method GetInfoRTSPServerCSEQ as Integer
- method GetInfoRTSPSessionID as string
- method GetInfoScheme as string
- method GetInfoSizeDownload as Double
- method GetInfoSizeUpload as Double
- method GetInfoSpeedDownload as Double
- method GetInfoSpeedUpload as Double
- method GetInfoSSLEngines as CURLSListMBS
- method GetInfoSSLVerifyResult as Integer
- method GetInfoStartTransferTime as Double
- method GetInfoTotalTime as Double
- method OpenMTInputFile(file as folderitem, Offset as Integer = 0) as boolean
- method OpenMTInputFile(Path as String, Offset as Integer = 0) as boolean
- method Perform as Integer
- method PerformMT as Integer
- method ReceiveData(byref data as Memoryblock, BytesToRead as Int64) as Int64
- method Reset
- method SendData(data as Memoryblock) as Integer
- method SendData(data as string) as Integer
- method SetInputData(data as MemoryBlock)
- method SetInputData(data as string)
- method SetOptionConnectTo(list() as string)
- method SetOptionEmptyPassword
- method SetOptionHTTP200Aliases(list() as string)
- method SetOptionHTTPHeader(list() as string)
- method SetOptionMailRecipients(list() as string)
- method SetOptionPostQuote(list() as string)
- method SetOptionPreQuote(list() as string)
- method SetOptionProxyHeader(list() as string)
- method SetOptionQuote(list() as string)
- method SetOptionResolve(list() as string)
- method SetOptionTelnetOptions(list() as string)
- method SetPathCAInfo(path as folderitem)
- method SetPathCAPath(path as folderitem)
- method SetPathCRLFile(path as folderitem)
- method SetPathIssuerCert(path as folderitem)
- method SetPathNetRCFile(path as folderitem)
- method SetPathProxyIssuerCert(path as folderitem)
- method SetupAWS(AWSAccessKeyId as String, AWSSecretAccessKey as String, Region as String, Service as String, Path as String, Domain as String, Verb as String, HashedPayload as String = "", Headers() as String = nil, queryParameters() as string = nil, NoSSL as boolean = false) as boolean
- method SetupEmail(email as Variant) as boolean
- method SetupOAuth(ConsumerKey as String, ConsumerSecret as String, AccessToken as String, AccessTokenSecret as String, HTTPVerb as String, URL as String, Parameters() as String = nil, Headers() as String = nil, Datas() as String = nil, Nonce as String = "", Timestamp as String = "", HMAC as String = "", Verifier as String = "", Realm as String = "") as boolean
- method UpKeep
- method UseSystemCertificates as Integer
- method WebSocketMeta as CURLSWebSocketFrameMBS
- method WebSocketReceive(BufferSize as Integer = 65536) as CURLSWebSocketFrameMBS
- method WebSocketSend(Data as MemoryBlock, FrameSize as Integer = 0, SendFlags as Integer = 0) as Integer
- 9 shared methods
- shared method AWSPresignURL(AWSAccessKeyId as String, AWSSecretAccessKey as String, Region as String, Service as String, Path as String, Domain as String, Verb as String = "GET", Expires as Integer = 86400, QueryParameters() as String = nil, Headers() as String = nil) as String
- shared method CipherNames as String()
- shared method DecodeIMAPFolderName(encodedName as String) as String
- shared method DigestNames as String()
- shared method LoadAPI
- shared method LoadErrorString as string
- shared method LoadLibrary(file as folderitem) as boolean
- shared method LoadLibrary(path as string) as boolean
- shared method ProcessRelativeURL(BaseURL as String, RelativeURL as String) as String
- 245 constants
This class has no sub classes.
Some methods using this class:
- CURLSMultiMBS.AddCURL(curl as CURLSMBS, handler as CURLSTransferFinishedMBS = nil) as boolean
- CURLSMultiMBS.CURLs as CURLSMBS()
- CURLSMultiMBS.RemoveCURL(CURL as CURLSMBS) as boolean
Some properties using for this class:
- CURLSMBS.OptionStreamDepends as CURLSMBS
- CURLSMBS.OptionStreamDependsE as CURLSMBS
Some events using this class:
- CURLSMultiMBS.TransferFinished(CURL as CURLSMBS, result as Integer, RemainingFinishedTransfers as Integer)
Some examples using this class:
- /CURL/CURL WebSocket Test
- /CURL/CURLS Amazon S3 pre-signed URL
- /CURL/CURLS picture download
- /CURL/CURLS post form values/CURLS post form values old
- /CURL/CURLS threaded download
- /CURL/MQTT
- /CURL/Receive Email/CURLS pop3 email download
- /CURL/Send Email/Send Email in Background async
- /CURL/SFTP/CURLS sftp rename file batch
- /CURL/Upload resume
Blog Entries
- MBS Xojo Plugins, version 24.2pr5
- News from the MBS Xojo Plugins Version 23.4
- MonkeyBread Software Releases the MBS Xojo Plugins in version 23.4
- MonkeyBread Software Releases the MBS Xojo Plugins in version 23.3
- News from the MBS Xojo Plugins Version 22.4
- Multithreaded plugin functions can increase speed of Xojo application
- Using system SSL Certificates in CURL
- Problems with killing Xojo threads with plugin calls.
- Adding CURLN* classes to MBS Xojo Plugins
- The Cancel problem with Threads
Xojo Developer Magazine
- 22.5, page 16: Xojo and MQTT, Learn about MQTT, a popular messaging transport protocol, and how you can use it in your Xojo-based apps. by Tim Dietrich
- 22.5, page 10: News
- 22.4, page 9: News
- 21.6, page 8: News
- 21.5, page 9: News
- 21.3, page 9: News
- 21.1, page 9: News
- 20.6, page 9: News
- 19.6, page 10: News
- 16.5, page 9: News
Videos
Release notes
- Version 24.4
- Added DecodeIMAPFolderName functions to CURLSMBS class to help decoding IMAP folder names.
- Added kSSLVersionMax* constants for CURLSMBS class.
- Improved CURLSMultiMBS class to clear cancel flag for CURLSMBS objects.
- Version 24.2
- Version 24.0
- Version 23.4
- Added ProcessRelativeURL method to CURLSMBS class.
- Version 23.3
- Added tag property to CURLSMultiMBS and CURLSMBS classes.
- 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.
The items on this page are in the following plugins: MBS CURL Plugin.
CURLSListMBS - CURLSMimePartMBS