Page
Library
Module
Module type
Parameter
Class
Class type
Source
Curl
Sourcelibcurl wrapper
type curlCode =
| CURLE_OK
| CURLE_UNSUPPORTED_PROTOCOL
| CURLE_FAILED_INIT
| CURLE_URL_MALFORMAT
| CURLE_URL_MALFORMAT_USER
| CURLE_COULDNT_RESOLVE_PROXY
| CURLE_COULDNT_RESOLVE_HOST
| CURLE_COULDNT_CONNECT
| CURLE_FTP_WEIRD_SERVER_REPLY
| CURLE_FTP_ACCESS_DENIED
| CURLE_FTP_USER_PASSWORD_INCORRECT
| CURLE_FTP_WEIRD_PASS_REPLY
| CURLE_FTP_WEIRD_USER_REPLY
| CURLE_FTP_WEIRD_PASV_REPLY
| CURLE_FTP_WEIRD_227_FORMAT
| CURLE_FTP_CANT_GET_HOST
| CURLE_FTP_CANT_RECONNECT
| CURLE_FTP_COULDNT_SET_BINARY
| CURLE_PARTIAL_FILE
| CURLE_FTP_COULDNT_RETR_FILE
| CURLE_FTP_WRITE_ERROR
| CURLE_FTP_QUOTE_ERROR
| CURLE_HTTP_NOT_FOUND
| CURLE_WRITE_ERROR
| CURLE_MALFORMAT_USER
| CURLE_FTP_COULDNT_STOR_FILE
| CURLE_READ_ERROR
| CURLE_OUT_OF_MEMORY
| CURLE_OPERATION_TIMEOUTED
| CURLE_FTP_COULDNT_SET_ASCII
| CURLE_FTP_PORT_FAILED
| CURLE_FTP_COULDNT_USE_REST
| CURLE_FTP_COULDNT_GET_SIZE
| CURLE_HTTP_RANGE_ERROR
| CURLE_HTTP_POST_ERROR
| CURLE_SSL_CONNECT_ERROR
| CURLE_FTP_BAD_DOWNLOAD_RESUME
| CURLE_FILE_COULDNT_READ_FILE
| CURLE_LDAP_CANNOT_BIND
| CURLE_LDAP_SEARCH_FAILED
| CURLE_LIBRARY_NOT_FOUND
| CURLE_FUNCTION_NOT_FOUND
| CURLE_ABORTED_BY_CALLBACK
| CURLE_BAD_FUNCTION_ARGUMENT
| CURLE_BAD_CALLING_ORDER
| CURLE_HTTP_PORT_FAILED
| CURLE_BAD_PASSWORD_ENTERED
| CURLE_TOO_MANY_REDIRECTS
| CURLE_UNKNOWN_TELNET_OPTION
| CURLE_TELNET_OPTION_SYNTAX
| CURLE_OBSOLETE
| CURLE_SSL_PEER_CERTIFICATE
| CURLE_GOT_NOTHING
| CURLE_SSL_ENGINE_NOTFOUND
| CURLE_SSL_ENGINE_SETFAILED
| CURLE_SEND_ERROR
| CURLE_RECV_ERROR
| CURLE_SHARE_IN_USE
| CURLE_SSL_CERTPROBLEM
| CURLE_SSL_CIPHER
| CURLE_SSL_CACERT
| CURLE_BAD_CONTENT_ENCODING
| CURLE_LDAP_INVALID_URL
| CURLE_FILESIZE_EXCEEDED
| CURLE_USE_SSL_FAILED
| CURLE_SEND_FAIL_REWIND
| CURLE_SSL_ENGINE_INITFAILED
| CURLE_LOGIN_DENIED
| CURLE_TFTP_NOTFOUND
| CURLE_TFTP_PERM
| CURLE_REMOTE_DISK_FULL
| CURLE_TFTP_ILLEGAL
| CURLE_TFTP_UNKNOWNID
| CURLE_REMOTE_FILE_EXISTS
| CURLE_TFTP_NOSUCHUSER
| CURLE_CONV_FAILED
| CURLE_CONV_REQD
| CURLE_SSL_CACERT_BADFILE
| CURLE_REMOTE_FILE_NOT_FOUND
| CURLE_SSH
| CURLE_SSL_SHUTDOWN_FAILED
| CURLE_AGAIN
exception raised when trying to use options missing from libcurl headers, argument is the option name
type curlHTTPPost =
| CURLFORM_CONTENT of string * string * curlContentType
| CURLFORM_FILECONTENT of string * string * curlContentType
| CURLFORM_FILE of string * string * curlContentType
| CURLFORM_BUFFER of string * string * string * curlContentType
type curlSSLVersion =
| SSLVERSION_DEFAULT
attempt to figure out the remote SSL protocol version
*)| SSLVERSION_TLSv1
TLSv1.x
*)| SSLVERSION_SSLv2
SSLv2
*)| SSLVERSION_SSLv3
SSLv3
*)| SSLVERSION_TLSv1_0
Added in libcurl 7.34.0, will request TLSv1.x in previous versions
*)| SSLVERSION_TLSv1_1
Added in libcurl 7.34.0, will request TLSv1.x in previous versions
*)| SSLVERSION_TLSv1_2
Added in libcurl 7.34.0, will request TLSv1.x in previous versions
*)| SSLVERSION_TLSv1_3
Added in libcurl 7.52.0, will request TLSv1.x in previous versions
*)type curlHTTPVersion =
| HTTP_VERSION_NONE
libcurl will make the best choice
*)| HTTP_VERSION_1_0
please use HTTP 1.0
*)| HTTP_VERSION_1_1
please use HTTP 1.1
*)| HTTP_VERSION_2
please use HTTP 2 (requires libcurl >= 7.33.0, otherwise will fallback to libcurl choice)
*)| HTTP_VERSION_2TLS
use version 2 for HTTPS, version 1.1 for HTTP (requires libcurl >= 7.47.0)
*)| HTTP_VERSION_2_PRIOR_KNOWLEDGE
Issue non-TLS HTTP requests using HTTP/2 without HTTP/1 (requires libcurl >= 7.49.0)
*)| HTTP_VERSION_3
Makes use of explicit HTTP/3 without fallback. Use CURLOPT_ALTSVC to enable HTTP/3 upgrade (requires libcurl >= 7.66.0)
*)type curlMIMEPartData =
| CURLMIME_DATA of string
| CURLMIME_FILEDATA of string
| CURLMIME_DATA_WITH_NAME of {
data : data_source;
name : string option;
filename : string option;
}
type curlMIMEPart = {
encoding : curlMIMEEncoding;
headers : string list;
subparts : curlMIMEPart list;
data : curlMIMEPartData;
}
type curlProto =
| CURLPROTO_ALL
enable everything
*)| CURLPROTO_HTTP
| CURLPROTO_HTTPS
| CURLPROTO_FTP
| CURLPROTO_FTPS
| CURLPROTO_SCP
| CURLPROTO_SFTP
| CURLPROTO_TELNET
| CURLPROTO_LDAP
| CURLPROTO_LDAPS
| CURLPROTO_DICT
| CURLPROTO_FILE
| CURLPROTO_TFTP
| CURLPROTO_IMAP
| CURLPROTO_IMAPS
| CURLPROTO_POP3
| CURLPROTO_POP3S
| CURLPROTO_SMTP
| CURLPROTO_SMTPS
| CURLPROTO_RTSP
| CURLPROTO_RTMP
| CURLPROTO_RTMPT
| CURLPROTO_RTMPE
| CURLPROTO_RTMPTE
| CURLPROTO_RTMPS
| CURLPROTO_RTMPTS
| CURLPROTO_GOPHER
Protocols to enable (via CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS)
if flag is not supported by libcurl - enabling it does nothing
type curlOption =
| CURLOPT_WRITEFUNCTION of string -> int
| CURLOPT_READFUNCTION of int -> string
| CURLOPT_INFILESIZE of int
| CURLOPT_URL of string
| CURLOPT_PROXY of string
| CURLOPT_PROXYPORT of int
| CURLOPT_HTTPPROXYTUNNEL of bool
| CURLOPT_VERBOSE of bool
| CURLOPT_HEADER of bool
| CURLOPT_NOPROGRESS of bool
| CURLOPT_NOSIGNAL of bool
| CURLOPT_NOBODY of bool
| CURLOPT_FAILONERROR of bool
| CURLOPT_UPLOAD of bool
| CURLOPT_POST of bool
| CURLOPT_FTPLISTONLY of bool
| CURLOPT_FTPAPPEND of bool
| CURLOPT_NETRC of curlNETRCOption
| CURLOPT_ENCODING of curlEncoding
| CURLOPT_FOLLOWLOCATION of bool
| CURLOPT_TRANSFERTEXT of bool
| CURLOPT_PUT of bool
| CURLOPT_USERPWD of string
| CURLOPT_PROXYUSERPWD of string
| CURLOPT_RANGE of string
| CURLOPT_ERRORBUFFER of string ref
| CURLOPT_TIMEOUT of int
| CURLOPT_POSTFIELDS of string
| CURLOPT_POSTFIELDSIZE of int
| CURLOPT_REFERER of string
| CURLOPT_USERAGENT of string
| CURLOPT_FTPPORT of string
| CURLOPT_LOWSPEEDLIMIT of int
| CURLOPT_LOWSPEEDTIME of int
| CURLOPT_RESUMEFROM of int
| CURLOPT_COOKIE of string
| CURLOPT_HTTPHEADER of string list
| CURLOPT_HTTPPOST of curlHTTPPost list
| CURLOPT_SSLCERT of string
| CURLOPT_SSLCERTTYPE of string
| CURLOPT_SSLCERTPASSWD of string
| CURLOPT_SSLKEY of string
| CURLOPT_SSLKEYTYPE of string
| CURLOPT_SSLKEYPASSWD of string
| CURLOPT_SSLENGINE of string
| CURLOPT_SSLENGINEDEFAULT of bool
| CURLOPT_CRLF of bool
| CURLOPT_QUOTE of string list
| CURLOPT_POSTQUOTE of string list
| CURLOPT_HEADERFUNCTION of string -> int
| CURLOPT_COOKIEFILE of string
| CURLOPT_SSLVERSION of curlSSLVersion
| CURLOPT_TIMECONDITION of curlTimeCondition
| CURLOPT_TIMEVALUE of int32
| CURLOPT_CUSTOMREQUEST of string
| CURLOPT_INTERFACE of string
| CURLOPT_KRB4LEVEL of curlKRB4Level
| CURLOPT_PROGRESSFUNCTION of float -> float -> float -> float -> bool
| CURLOPT_SSLVERIFYPEER of bool
| CURLOPT_CAINFO of string
| CURLOPT_CAPATH of string
| CURLOPT_FILETIME of bool
| CURLOPT_MAXREDIRS of int
| CURLOPT_MAXCONNECTS of int
| CURLOPT_CLOSEPOLICY of curlClosePolicy
| CURLOPT_FRESHCONNECT of bool
| CURLOPT_FORBIDREUSE of bool
| CURLOPT_RANDOMFILE of string
| CURLOPT_EGDSOCKET of string
| CURLOPT_CONNECTTIMEOUT of int
| CURLOPT_HTTPGET of bool
| CURLOPT_SSLVERIFYHOST of curlSSLVerifyHost
| CURLOPT_COOKIEJAR of string
| CURLOPT_SSLCIPHERLIST of string
| CURLOPT_HTTPVERSION of curlHTTPVersion
| CURLOPT_FTPUSEEPSV of bool
| CURLOPT_DNSCACHETIMEOUT of int
| CURLOPT_DNSUSEGLOBALCACHE of bool
| CURLOPT_DEBUGFUNCTION of t -> curlDebugType -> string -> unit
| CURLOPT_PRIVATE of string
doesn't employ libcurl's CURLOPT_PRIVATE
*)| CURLOPT_HTTP200ALIASES of string list
| CURLOPT_UNRESTRICTEDAUTH of bool
| CURLOPT_FTPUSEEPRT of bool
| CURLOPT_HTTPAUTH of curlAuth list
| CURLOPT_FTPCREATEMISSINGDIRS of bool
| CURLOPT_PROXYAUTH of curlAuth list
| CURLOPT_FTPRESPONSETIMEOUT of int
| CURLOPT_IPRESOLVE of curlIPResolve
| CURLOPT_MAXFILESIZE of int32
| CURLOPT_INFILESIZELARGE of int64
| CURLOPT_RESUMEFROMLARGE of int64
| CURLOPT_MAXFILESIZELARGE of int64
| CURLOPT_NETRCFILE of string
| CURLOPT_FTPSSL of curlFTPSSL
| CURLOPT_POSTFIELDSIZELARGE of int64
| CURLOPT_TCPNODELAY of bool
| CURLOPT_TCP_FASTOPEN of bool
| CURLOPT_FTPSSLAUTH of curlFTPSSLAuth
| CURLOPT_IOCTLFUNCTION of t -> curlIOCmd -> curlIOErr
| CURLOPT_FTPACCOUNT of string
| CURLOPT_COOKIELIST of string
| CURLOPT_IGNORECONTENTLENGTH of bool
| CURLOPT_FTPSKIPPASVIP of bool
| CURLOPT_FTPFILEMETHOD of curlFTPMethod
| CURLOPT_LOCALPORT of int
| CURLOPT_LOCALPORTRANGE of int
| CURLOPT_CONNECTONLY of bool
| CURLOPT_MAXSENDSPEEDLARGE of int64
| CURLOPT_MAXRECVSPEEDLARGE of int64
| CURLOPT_FTPALTERNATIVETOUSER of string
| CURLOPT_SSLSESSIONIDCACHE of bool
| CURLOPT_SSHAUTHTYPES of curlSSHAuthTypes list
| CURLOPT_SSHPUBLICKEYFILE of string
| CURLOPT_SSHPRIVATEKEYFILE of string
| CURLOPT_FTPSSLCCC of curlFTPSSLCCC
| CURLOPT_TIMEOUTMS of int
| CURLOPT_CONNECTTIMEOUTMS of int
| CURLOPT_HTTPTRANSFERDECODING of bool
| CURLOPT_HTTPCONTENTDECODING of bool
| CURLOPT_NEWFILEPERMS of int
| CURLOPT_NEWDIRECTORYPERMS of int
| CURLOPT_POST301 of bool
| CURLOPT_SSHHOSTPUBLICKEYMD5 of string
| CURLOPT_COPYPOSTFIELDS of string
| CURLOPT_PROXYTRANSFERMODE of bool
| CURLOPT_SEEKFUNCTION of int64 -> curlSeek -> curlSeekResult
| CURLOPT_AUTOREFERER of bool
| CURLOPT_OPENSOCKETFUNCTION of Unix.file_descr -> unit
| CURLOPT_PROXYTYPE of curlProxyType
| CURLOPT_PROTOCOLS of curlProto list
| CURLOPT_REDIR_PROTOCOLS of curlProto list
| CURLOPT_RESOLVE of string list
| CURLOPT_DNS_SERVERS of string
| CURLOPT_MAIL_FROM of string
| CURLOPT_MAIL_RCPT of string list
| CURLOPT_PIPEWAIT of bool
| CURLOPT_CERTINFO of bool
| CURLOPT_USERNAME of string
| CURLOPT_PASSWORD of string
| CURLOPT_LOGIN_OPTIONS of string
| CURLOPT_CONNECT_TO of string list
| CURLOPT_POSTREDIR of curlPostRedir list
| CURLOPT_MIMEPOST of curlMIMEPart list
| CURLOPT_SSHKNOWNHOSTS of string
| CURLOPT_SSHKEYFUNCTION of curlKHMatch -> string -> curlKHStat
The second argument to the passed function consists of the raw bytes of the public key sent by the remote host. If the function raises an exception the key will be rejected, and the connection will fail.*
*)| CURLOPT_BUFFERSIZE of int
| CURLOPT_DOH_URL of string
| CURLOPT_SSL_OPTIONS of curlSslOption list
| CURLOPT_PROXY_SSL_OPTIONS of curlSslOption list
| CURLOPT_WRITEFUNCTION2 of string -> write_result
| CURLOPT_WRITEFUNCTION_BUF of bigstring -> write_result
| CURLOPT_READFUNCTION2 of int -> read_result
| CURLOPT_XFERINFOFUNCTION of int64 -> int64 -> int64 -> int64 -> bool
| CURLOPT_PREREQFUNCTION of string -> string -> int -> int -> bool
| CURLOPT_AWS_SIGV4 of string
| CURLOPT_TCP_KEEPALIVE of bool
| CURLOPT_TCP_KEEPIDLE of int
| CURLOPT_TCP_KEEPINTVL of int
| CURLOPT_NOPROXY of string
type curlInfo =
| CURLINFO_EFFECTIVE_URL
| CURLINFO_HTTP_CODE
| CURLINFO_RESPONSE_CODE
| CURLINFO_TOTAL_TIME
| CURLINFO_NAMELOOKUP_TIME
| CURLINFO_CONNECT_TIME
| CURLINFO_PRETRANSFER_TIME
| CURLINFO_SIZE_UPLOAD
| CURLINFO_SIZE_DOWNLOAD
| CURLINFO_SPEED_DOWNLOAD
| CURLINFO_SPEED_UPLOAD
| CURLINFO_HEADER_SIZE
| CURLINFO_REQUEST_SIZE
| CURLINFO_SSL_VERIFYRESULT
| CURLINFO_FILETIME
| CURLINFO_CONTENT_LENGTH_DOWNLOAD
| CURLINFO_CONTENT_LENGTH_UPLOAD
| CURLINFO_STARTTRANSFER_TIME
| CURLINFO_CONTENT_TYPE
| CURLINFO_REDIRECT_TIME
| CURLINFO_REDIRECT_COUNT
| CURLINFO_PRIVATE
returns value previously set with CURLOPT_PRIVATE, doesn't employ libcurl's CURLINFO_PRIVATE
*)| CURLINFO_HTTP_CONNECTCODE
| CURLINFO_HTTPAUTH_AVAIL
| CURLINFO_PROXYAUTH_AVAIL
| CURLINFO_OS_ERRNO
| CURLINFO_NUM_CONNECTS
| CURLINFO_SSL_ENGINES
| CURLINFO_COOKIELIST
| CURLINFO_LASTSOCKET
| CURLINFO_FTP_ENTRY_PATH
| CURLINFO_REDIRECT_URL
| CURLINFO_PRIMARY_IP
| CURLINFO_LOCAL_IP
| CURLINFO_LOCAL_PORT
| CURLINFO_CONDITION_UNMET
| CURLINFO_CERTINFO
| CURLINFO_ACTIVESOCKET
| CURLINFO_HTTP_VERSION
type curlInfoResult =
| CURLINFO_String of string
| CURLINFO_Long of int
| CURLINFO_Double of float
| CURLINFO_StringList of string list
| CURLINFO_StringListList of string list list
| CURLINFO_Socket of Unix.file_descr
| CURLINFO_Version of curlHTTPVersion
type version_info = {
version : string;
number : int * int * int;
host : string;
features : string list;
ssl_version : string option;
libz_version : string option;
protocols : string list;
ares : string;
starting from this field are optional features - may be empty/zero
*)ares_num : int;
libidn : string;
iconv_ver_num : int;
libssh_version : string;
}
Get a list of headers that result from repeatedly calling curl_easy_nextheader
with the supplied origins and request. Typical usage is: get_headers [ CURLH_HEADER ] ~request:(-1)
flags set the new state, ie to unpause - pass empty list
All callback functions shouldn't raise exceptions. Any exception raised in callback function will be silently caught and discarded, and the transfer will be aborted.
A write callback that provides direct access to curl's receive buffer. The provided buffer may only be read within the callback. It is illegal for the buffer to escape the scope of the callback.
This function provides better performance than string-based variants by avoiding an intermediate copy.
readfunction n
should return string of length at most n
, otherwise transfer will be aborted (as if with exception)
deprecated in favor of xferinfofunction since libcurl 7.32.0
callback returns whether transfer should be interrupted, ie return false to continue transfering
callback returns whether transfer should be interrupted, ie return false to continue transfering
set_resolve t add del
adjusts builtin dns mapping