⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 curl.h

📁 功能最强大的网络爬虫,希望大家好好学习啊,好好研究啊
💻 H
📖 第 1 页 / 共 4 页
字号:
typedef enum {  CURLFTPSSL_NONE,    /* do not attempt to use SSL */  CURLFTPSSL_TRY,     /* try using SSL, proceed anyway otherwise */  CURLFTPSSL_CONTROL, /* SSL for the control connection or fail */  CURLFTPSSL_ALL,     /* SSL for all communication or fail */  CURLFTPSSL_LAST     /* not an option, never use */} curl_ftpssl;/* parameter for the CURLOPT_FTPSSLAUTH option */typedef enum {  CURLFTPAUTH_DEFAULT, /* let libcurl decide */  CURLFTPAUTH_SSL,     /* use "AUTH SSL" */  CURLFTPAUTH_TLS,     /* use "AUTH TLS" */  CURLFTPAUTH_LAST /* not an option, never use */} curl_ftpauth;/* parameter for the CURLOPT_FTP_FILEMETHOD option */typedef enum {  CURLFTPMETHOD_DEFAULT,   /* let libcurl pick */  CURLFTPMETHOD_MULTICWD,  /* single CWD operation for each path part */  CURLFTPMETHOD_NOCWD,     /* no CWD at all */  CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */  CURLFTPMETHOD_LAST       /* not an option, never use */} curl_ftpmethod;/* long may be 32 or 64 bits, but we should never depend on anything else   but 32 */#define CURLOPTTYPE_LONG          0#define CURLOPTTYPE_OBJECTPOINT   10000#define CURLOPTTYPE_FUNCTIONPOINT 20000#define CURLOPTTYPE_OFF_T         30000/* name is uppercase CURLOPT_<name>,   type is one of the defined CURLOPTTYPE_<type>   number is unique identifier */#ifdef CINIT#undef CINIT#endif/* * Figure out if we can use the ## operator, which is supported by ISO/ANSI C * and C++. Some compilers support it without setting __STDC__ or __cplusplus * so we need to carefully check for them too. We don't use configure-checks * for these since we want these headers to remain generic and working for all * platforms. */#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \  defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \  defined(__POCC__) || defined(__SALFORDC__)  /* This compiler is believed to have an ISO compatible preprocessor */#define CURL_ISOCPP#else  /* This compiler is believed NOT to have an ISO compatible preprocessor */#undef CURL_ISOCPP#endif#ifdef CURL_ISOCPP#define CINIT(name,type,number) CURLOPT_ ## name = CURLOPTTYPE_ ## type + number#else/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */#define LONG          CURLOPTTYPE_LONG#define OBJECTPOINT   CURLOPTTYPE_OBJECTPOINT#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT#define OFF_T         CURLOPTTYPE_OFF_T#define CINIT(name,type,number) CURLOPT_/**/name = type + number#endif/* * This macro-mania below setups the CURLOPT_[what] enum, to be used with * curl_easy_setopt(). The first argument in the CINIT() macro is the [what] * word. */typedef enum {  /* This is the FILE * or void * the regular output should be written to. */  CINIT(FILE, OBJECTPOINT, 1),  /* The full URL to get/put */  CINIT(URL,  OBJECTPOINT, 2),  /* Port number to connect to, if other than default. */  CINIT(PORT, LONG, 3),  /* Name of proxy to use. */  CINIT(PROXY, OBJECTPOINT, 4),  /* "name:password" to use when fetching. */  CINIT(USERPWD, OBJECTPOINT, 5),  /* "name:password" to use with proxy. */  CINIT(PROXYUSERPWD, OBJECTPOINT, 6),  /* Range to get, specified as an ASCII string. */  CINIT(RANGE, OBJECTPOINT, 7),  /* not used */  /* Specified file stream to upload from (use as input): */  CINIT(INFILE, OBJECTPOINT, 9),  /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE   * bytes big. If this is not used, error messages go to stderr instead: */  CINIT(ERRORBUFFER, OBJECTPOINT, 10),  /* Function that will be called to store the output (instead of fwrite). The   * parameters will use fwrite() syntax, make sure to follow them. */  CINIT(WRITEFUNCTION, FUNCTIONPOINT, 11),  /* Function that will be called to read the input (instead of fread). The   * parameters will use fread() syntax, make sure to follow them. */  CINIT(READFUNCTION, FUNCTIONPOINT, 12),  /* Time-out the read operation after this amount of seconds */  CINIT(TIMEOUT, LONG, 13),  /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about   * how large the file being sent really is. That allows better error   * checking and better verifies that the upload was succcessful. -1 means   * unknown size.   *   * For large file support, there is also a _LARGE version of the key   * which takes an off_t type, allowing platforms with larger off_t   * sizes to handle larger files.  See below for INFILESIZE_LARGE.   */  CINIT(INFILESIZE, LONG, 14),  /* POST input fields. */  CINIT(POSTFIELDS, OBJECTPOINT, 15),  /* Set the referer page (needed by some CGIs) */  CINIT(REFERER, OBJECTPOINT, 16),  /* Set the FTP PORT string (interface name, named or numerical IP address)     Use i.e '-' to use default address. */  CINIT(FTPPORT, OBJECTPOINT, 17),  /* Set the User-Agent string (examined by some CGIs) */  CINIT(USERAGENT, OBJECTPOINT, 18),  /* If the download receives less than "low speed limit" bytes/second   * during "low speed time" seconds, the operations is aborted.   * You could i.e if you have a pretty high speed connection, abort if   * it is less than 2000 bytes/sec during 20 seconds.   */  /* Set the "low speed limit" */  CINIT(LOW_SPEED_LIMIT, LONG , 19),  /* Set the "low speed time" */  CINIT(LOW_SPEED_TIME, LONG, 20),  /* Set the continuation offset.   *   * Note there is also a _LARGE version of this key which uses   * off_t types, allowing for large file offsets on platforms which   * use larger-than-32-bit off_t's.  Look below for RESUME_FROM_LARGE.   */  CINIT(RESUME_FROM, LONG, 21),  /* Set cookie in request: */  CINIT(COOKIE, OBJECTPOINT, 22),  /* This points to a linked list of headers, struct curl_slist kind */  CINIT(HTTPHEADER, OBJECTPOINT, 23),  /* This points to a linked list of post entries, struct HttpPost */  CINIT(HTTPPOST, OBJECTPOINT, 24),  /* name of the file keeping your private SSL-certificate */  CINIT(SSLCERT, OBJECTPOINT, 25),  /* password for the SSL-private key, keep this for compatibility */  CINIT(SSLCERTPASSWD, OBJECTPOINT, 26),  /* password for the SSL private key */  CINIT(SSLKEYPASSWD, OBJECTPOINT, 26),  /* send TYPE parameter? */  CINIT(CRLF, LONG, 27),  /* send linked-list of QUOTE commands */  CINIT(QUOTE, OBJECTPOINT, 28),  /* send FILE * or void * to store headers to, if you use a callback it     is simply passed to the callback unmodified */  CINIT(WRITEHEADER, OBJECTPOINT, 29),  /* point to a file to read the initial cookies from, also enables     "cookie awareness" */  CINIT(COOKIEFILE, OBJECTPOINT, 31),  /* What version to specifly try to use.     See CURL_SSLVERSION defines below. */  CINIT(SSLVERSION, LONG, 32),  /* What kind of HTTP time condition to use, see defines */  CINIT(TIMECONDITION, LONG, 33),  /* Time to use with the above condition. Specified in number of seconds     since 1 Jan 1970 */  CINIT(TIMEVALUE, LONG, 34),  /* 35 = OBSOLETE */  /* Custom request, for customizing the get command like     HTTP: DELETE, TRACE and others     FTP: to use a different list command     */  CINIT(CUSTOMREQUEST, OBJECTPOINT, 36),  /* HTTP request, for odd commands like DELETE, TRACE and others */  CINIT(STDERR, OBJECTPOINT, 37),  /* 38 is not used */  /* send linked-list of post-transfer QUOTE commands */  CINIT(POSTQUOTE, OBJECTPOINT, 39),  /* Pass a pointer to string of the output using full variable-replacement     as described elsewhere. */  CINIT(WRITEINFO, OBJECTPOINT, 40),  CINIT(VERBOSE, LONG, 41),      /* talk a lot */  CINIT(HEADER, LONG, 42),       /* throw the header out too */  CINIT(NOPROGRESS, LONG, 43),   /* shut off the progress meter */  CINIT(NOBODY, LONG, 44),       /* use HEAD to get http document */  CINIT(FAILONERROR, LONG, 45),  /* no output on http error codes >= 300 */  CINIT(UPLOAD, LONG, 46),       /* this is an upload */  CINIT(POST, LONG, 47),         /* HTTP POST method */  CINIT(FTPLISTONLY, LONG, 48),  /* Use NLST when listing ftp dir */  CINIT(FTPAPPEND, LONG, 50),    /* Append instead of overwrite on upload! */  /* Specify whether to read the user+password from the .netrc or the URL.   * This must be one of the CURL_NETRC_* enums below. */  CINIT(NETRC, LONG, 51),  CINIT(FOLLOWLOCATION, LONG, 52),  /* use Location: Luke! */  CINIT(TRANSFERTEXT, LONG, 53), /* transfer data in text/ASCII format */  CINIT(PUT, LONG, 54),          /* HTTP PUT */  /* 55 = OBSOLETE */  /* Function that will be called instead of the internal progress display   * function. This function should be defined as the curl_progress_callback   * prototype defines. */  CINIT(PROGRESSFUNCTION, FUNCTIONPOINT, 56),  /* Data passed to the progress callback */  CINIT(PROGRESSDATA, OBJECTPOINT, 57),  /* We want the referer field set automatically when following locations */  CINIT(AUTOREFERER, LONG, 58),  /* Port of the proxy, can be set in the proxy string as well with:     "[host]:[port]" */  CINIT(PROXYPORT, LONG, 59),  /* size of the POST input data, if strlen() is not good to use */  CINIT(POSTFIELDSIZE, LONG, 60),  /* tunnel non-http operations through a HTTP proxy */  CINIT(HTTPPROXYTUNNEL, LONG, 61),  /* Set the interface string to use as outgoing network interface */  CINIT(INTERFACE, OBJECTPOINT, 62),  /* Set the krb4 security level, this also enables krb4 awareness.  This is a   * string, 'clear', 'safe', 'confidential' or 'private'.  If the string is   * set but doesn't match one of these, 'private' will be used.  */  CINIT(KRB4LEVEL, OBJECTPOINT, 63),  /* Set if we should verify the peer in ssl handshake, set 1 to verify. */  CINIT(SSL_VERIFYPEER, LONG, 64),  /* The CApath or CAfile used to validate the peer certificate     this option is used only if SSL_VERIFYPEER is true */  CINIT(CAINFO, OBJECTPOINT, 65),  /* 66 = OBSOLETE */  /* 67 = OBSOLETE */  /* Maximum number of http redirects to follow */  CINIT(MAXREDIRS, LONG, 68),  /* Pass a long set to 1 to get the date of the requested document (if     possible)! Pass a zero to shut it off. */  CINIT(FILETIME, LONG, 69),  /* This points to a linked list of telnet options */  CINIT(TELNETOPTIONS, OBJECTPOINT, 70),  /* Max amount of cached alive connections */  CINIT(MAXCONNECTS, LONG, 71),  /* What policy to use when closing connections when the cache is filled     up */  CINIT(CLOSEPOLICY, LONG, 72),  /* 73 = OBSOLETE */  /* Set to explicitly use a new connection for the upcoming transfer.     Do not use this unless you're absolutely sure of this, as it makes the     operation slower and is less friendly for the network. */  CINIT(FRESH_CONNECT, LONG, 74),  /* Set to explicitly forbid the upcoming transfer's connection to be re-used     when done. Do not use this unless you're absolutely sure of this, as it     makes the operation slower and is less friendly for the network. */  CINIT(FORBID_REUSE, LONG, 75),  /* Set to a file name that contains random data for libcurl to use to     seed the random engine when doing SSL connects. */  CINIT(RANDOM_FILE, OBJECTPOINT, 76),  /* Set to the Entropy Gathering Daemon socket pathname */  CINIT(EGDSOCKET, OBJECTPOINT, 77),  /* Time-out connect operations after this amount of seconds, if connects     are OK within this time, then fine... This only aborts the connect     phase. [Only works on unix-style/SIGALRM operating systems] */  CINIT(CONNECTTIMEOUT, LONG, 78),  /* Function that will be called to store headers (instead of fwrite). The   * parameters will use fwrite() syntax, make sure to follow them. */  CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79),  /* Set this to force the HTTP request to get back to GET. Only really usable     if POST, PUT or a custom request have been used first.   */  CINIT(HTTPGET, LONG, 80),  /* Set if we should verify the Common name from the peer certificate in ssl   * handshake, set 1 to check existence, 2 to ensure that it matches the   * provided hostname. */  CINIT(SSL_VERIFYHOST, LONG, 81),  /* Specify which file name to write all known cookies in after completed     operation. Set file name to "-" (dash) to make it go to stdout. */  CINIT(COOKIEJAR, OBJECTPOINT, 82),  /* Specify which SSL ciphers to use */  CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83),  /* Specify which HTTP version to use! This must be set to one of the     CURL_HTTP_VERSION* enums set below. */  CINIT(HTTP_VERSION, LONG, 84),  /* Specificly switch on or off the FTP engine's use of the EPSV command. By     default, that one will always be attempted before the more traditional     PASV command. */  CINIT(FTP_USE_EPSV, LONG, 85),  /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */  CINIT(SSLCERTTYPE, OBJECTPOINT, 86),  /* name of the file keeping your private SSL-key */  CINIT(SSLKEY, OBJECTPOINT, 87),  /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */  CINIT(SSLKEYTYPE, OBJECTPOINT, 88),  /* crypto engine for the SSL-sub system */  CINIT(SSLENGINE, OBJECTPOINT, 89),  /* set the crypto engine for the SSL-sub system as default     the param has no meaning...   */  CINIT(SSLENGINE_DEFAULT, LONG, 90),  /* Non-zero value means to use the global dns cache */  CINIT(DNS_USE_GLOBAL_CACHE, LONG, 91), /* To becomeO BSOLETE soon */  /* DNS cache timeout */  CINIT(DNS_CACHE_TIMEOUT, LONG, 92),  /* send linked-list of pre-transfer QUOTE commands (Wesley Laxton)*/  CINIT(PREQUOTE, OBJECTPOINT, 93),  /* set the debug function */  CINIT(DEBUGFUNCTION, FUNCTIONPOINT, 94),  /* set the data for the debug function */  CINIT(DEBUGDATA, OBJECTPOINT, 95),  /* mark this as start of a cookie session */  CINIT(COOKIESESSION, LONG, 96),  /* The CApath directory used to validate the peer certificate     this option is used only if SSL_VERIFYPEER is true */  CINIT(CAPATH, OBJECTPOINT, 97),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -