Platforms to show: All Mac Windows Linux Cross-Platform
CURLMBS class
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
class | CURL | MBS CURL Plugin | 9.8 | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | Desktop, Console & Web |
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 CURLFileInfoMBS, Remains as Integer) as Integer
- event ChunkEnd(FileInfo as CURLFileInfoMBS, 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 CURLMBS
- property OptionStreamDependsE as CURLMBS
- 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 CURLVersionMBS
- 111 methods
- method AddMimePart as CURLMimePartMBS
- 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 CURLFileInfoMBS()
- 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 CURLListMBS()
- method GetInfoConditionUnmet as Integer
- method GetInfoConnectTime as Double
- method GetInfoContentLengthDownload as Double
- method GetInfoContentLengthUpload as Double
- method GetInfoContentType as string
- method GetInfoCookieList as CURLListMBS
- 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 CURLListMBS
- 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 SetupEmail(email as Variant) as boolean
- method UpKeep
- method WebSocketMeta as CURLWebSocketFrameMBS
- method WebSocketReceive(BufferSize as Integer = 65536) as CURLWebSocketFrameMBS
- method WebSocketSend(Data as MemoryBlock, FrameSize as Integer = 0, SendFlags as Integer = 0) as Integer
- 7 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 DecodeIMAPFolderName(encodedName as String) as String New in 24.4
- 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:
- CURLMultiMBS.AddCURL(curl as CURLMBS, handler as CURLTransferFinishedMBS = nil) as boolean
- CURLMultiMBS.CURLs as CURLMBS()
- CURLMultiMBS.RemoveCURL(CURL as CURLMBS) as boolean
Some properties using for this class:
- CURLMBS.OptionStreamDepends as CURLMBS
- CURLMBS.OptionStreamDependsE as CURLMBS
Some events using this class:
- CURLMultiMBS.TransferFinished(CURL as CURLMBS, result as Integer, RemainingFinishedTransfers as Integer)
Some examples using this class:
Blog Entries
- News from the MBS Xojo Plugins Version 23.4
- News from the MBS Xojo Plugins in Version 23.0
- News from the MBS Xojo Plugins Version 22.3
- News from the MBS Xojo Plugins Version 21.3
- News from the MBS Xojo Plugins Version 20.4
- URLs without UserName and Password please
- Differences between CURLMBS and CURLSMBS classes
- Multithreaded plugin functions can increase speed of Real Studio application
- MBS Plugins 10.3 Release Notes
- About CURLSMBS plugin class
Xojo Developer Magazine
Release notes
- Version 19.5
- Version 18.2
- Changed CollectOutputData, CollectHeaderData and CollectDebugData for CURLSMBS/CURLMBS/CURLNMBS to track if you set property and if you set to false, we ignore the data and do neither return error nor collect data. If never set, we may turn them to true, when you have no event and no file streaming.
- Version 17.1
The items on this page are in the following plugins: MBS CURL Plugin.