libcurl簡單用法


1.全局初始化API

應用程序在使用libcurl之前,必須先初始化libcurl。libcurl只需初始化一次。可以使用以下語句進行初始化:
  CURLcode curl_global_init(int flags);
  一般flags使用CURL_GLOBAL_ALL
當應用程序不再使用libcurl的時候,應該調用curl_global_cleanup[聲明:void curl_global_cleanup(void)]釋放相關的資源。
在程序中,應當避免多次調用curl_global_init和curl_global_cleanup。它們只能被調用一次。
返回值0成功,非0值代表錯誤。若錯誤,所有api不得調用。

#define CURL_GLOBAL_SSL (1<<0)//設定支持SSL
#define CURL_GLOBAL_WIN32 (1<<1)//libcurl初始化winsock庫
#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32)
#define CURL_GLOBAL_NOTHING 0
#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL
#define CURL_GLOBAL_ACK_EINTR (1<<2)//CURL_GLOBAL_ACK_EINTR 在7.69.0以后將沒有任何作用。在在7.69.0之前:當設置此標志時,curl將在連接或等待數據時確認EINTR條件。 否則,curl將等待直到完全超時結束。

 2.curl其他常用API

      2.1.easy interface

    最基本的原則是絕對不要同時在多個線程之間共享一個libcurl的句柄。確保任何時候一個句柄只是在一個線程里使用。你可以在多個線程之間傳遞句柄,但是你不能使用。

libcurl是線程安全的,除了以下兩種情況:信號量和SSL/TLS句柄。信號量用於超時失效名字解析(在域名解析的時候)。

  CURL *curl_easy_init( );

(1)初始化
  CURL *curl_easy_init();
  //此函數必須是要調用的第一個函數,它返回一個 CURL 簡易句柄,您必須將其用作簡易界面中其他函數的輸入。當操作完成時,這個調用必須有一個對應的curl_easy_cleanup調用。

(2)清理回收函數
  void curl_easy_cleanup(CURL * handle );
  //此函數必須是調用簡單會話的最后一個函數。它與curl_easy_init函數相反

(3)執行curl動作(如HTTP的POST GET 等)
  CURLcode curl_easy_perform(CURL *easy_handle);
  //在curl_easy_init和所有curl_easy_setopt調用完成后調用此函數,並將按照選項中的描述執行傳輸.   //以阻塞方式執行整個請求,並在完成或失敗時返回。對於非阻塞行為,請參閱curl_multi_perform。   //讓函數先返回,然后再調用它。如果你想要並行傳輸,你必須使用幾個 curl easy_handles。   //CURLE_OK (0) 表示一切正常.

(4)獲取curl句柄屬性函數
  CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );
  //返回值CURLE_OK (0)表示正常
   info 取值如下:

CURLINFO_EFFECTIVE_METHOD

上次使用的 HTTP 方法。CURLINFO_EFFECTIVE_METHOD

CURLINFO_EFFECTIVE_URL

上次使用的網址。CURLINFO_EFFECTIVE_URL

CURLINFO_RESPONSE_CODE

最后收到的響應代碼。CURLINFO_RESPONSE_CODE

CURLINFO_REFERER

引用標頭。CURLINFO_REFERER

CURLINFO_HTTP_CONNECTCODE

最后一個代理 CONNECT 響應代碼。CURLINFO_HTTP_CONNECTCODE

CURLINFO_HTTP_VERSION

連接中使用的 http 版本。CURLINFO_HTTP_VERSION

CURLINFO_FILETIME

檢索文檔的遠程時間。CURLINFO_FILETIME

CURLINFO_FILETIME_T

檢索文檔的遠程時間。CURLINFO_FILETIME_T

CURLINFO_TOTAL_TIME

上次傳輸的總時間。CURLINFO_TOTAL_TIME

CURLINFO_TOTAL_TIME_T

上次傳輸的總時間。CURLINFO_TOTAL_TIME_T

CURLINFO_NAMELOOKUP_TIME

從開始到名稱解析完成的時間。CURLINFO_NAMELOOKUP_TIME

CURLINFO_NAMELOOKUP_TIME_T

從開始到名稱解析完成的時間。CURLINFO_NAMELOOKUP_TIME_T

CURLINFO_CONNECT_TIME

從開始到遠程主機或代理完成的時間。CURLINFO_CONNECT_TIME

CURLINFO_CONNECT_TIME_T

從開始到遠程主機或代理完成的時間。CURLINFO_CONNECT_TIME_T

CURLINFO_APPCONNECT_TIME

從開始到 SSL/SSH 握手完成的時間。CURLINFO_APPCONNECT_TIME

CURLINFO_APPCONNECT_TIME_T

從開始到 SSL/SSH 握手完成的時間。CURLINFO_APPCONNECT_TIME_T

CURLINFO_PRETRANSFER_TIME

從開始到傳輸開始之前的時間。CURLINFO_PRETRANSFER_TIME

CURLINFO_PRETRANSFER_TIME_T

從開始到傳輸開始之前的時間。CURLINFO_PRETRANSFER_TIME_T

CURLINFO_STARTTRANSFER_TIME

從開始到收到第一個字節的時間。CURLINFO_STARTTRANSFER_TIME

CURLINFO_STARTTRANSFER_TIME_T

從開始到收到第一個字節的時間。CURLINFO_STARTTRANSFER_TIME_T

CURLINFO_REDIRECT_TIME

最終傳輸之前所​​有重定向步驟所用的時間。CURLINFO_REDIRECT_TIME

CURLINFO_REDIRECT_TIME_T

最終傳輸之前所​​有重定向步驟所用的時間。CURLINFO_REDIRECT_TIME_T

CURLINFO_REDIRECT_COUNT

遵循的重定向總數。CURLINFO_REDIRECT_COUNT

CURLINFO_REDIRECT_URL

如果您啟用了重定向,重定向會將您帶到的 URL。CURLINFO_REDIRECT_URL

CURLINFO_SIZE_UPLOAD

(已棄用)上傳的字節數。CURLINFO_SIZE_UPLOAD

CURLINFO_SIZE_UPLOAD_T

上傳的字節數。CURLINFO_SIZE_UPLOAD_T

CURLINFO_SIZE_DOWNLOAD

(已棄用)下載的字節數。CURLINFO_SIZE_DOWNLOAD

CURLINFO_SIZE_DOWNLOAD_T

下載的字節數。CURLINFO_SIZE_DOWNLOAD_T

CURLINFO_SPEED_DOWNLOAD

(已棄用)平均下載速度。CURLINFO_SPEED_DOWNLOAD

CURLINFO_SPEED_DOWNLOAD_T

平均下載速度。CURLINFO_SPEED_DOWNLOAD_T

CURLINFO_SPEED_UPLOAD

(已棄用)平均上傳速度。CURLINFO_SPEED_UPLOAD

CURLINFO_SPEED_UPLOAD_T

平均上傳速度。CURLINFO_SPEED_UPLOAD_T

CURLINFO_HEADER_SIZE

收到的所有標頭的字節數。CURLINFO_HEADER_SIZE

CURLINFO_REQUEST_SIZE

發出的 HTTP 請求中發送的字節數。CURLINFO_REQUEST_SIZE

CURLINFO_SSL_VERIFYRESULT

證書驗證結果。CURLINFO_SSL_VERIFYRESULT

CURLINFO_PROXY_ERROR

詳細的代理錯誤。CURLINFO_PROXY_ERROR

CURLINFO_PROXY_SSL_VERIFYRESULT

代理證書驗證結果。CURLINFO_PROXY_SSL_VERIFYRESULT

CURLINFO_SSL_ENGINES

OpenSSL 加密引擎列表。CURLINFO_SSL_ENGINES

CURLINFO_CONTENT_LENGTH_DOWNLOAD

(已棄用)來自 Content-Length 標頭的內容長度。CURLINFO_CONTENT_LENGTH_DOWNLOAD

CURLINFO_CONTENT_LENGTH_DOWNLOAD_T

來自 Content-Length 標頭的內容長度。CURLINFO_CONTENT_LENGTH_DOWNLOAD_T

CURLINFO_CONTENT_LENGTH_UPLOAD

(已棄用)上傳大小。CURLINFO_CONTENT_LENGTH_UPLOAD

CURLINFO_CONTENT_LENGTH_UPLOAD_T

上傳大小。CURLINFO_CONTENT_LENGTH_UPLOAD_T

CURLINFO_CONTENT_TYPE

來自 Content-Type 標頭的內容類型。CURLINFO_CONTENT_TYPE

CURLINFO_RETRY_AFTER

來自 Retry-After 標頭的值。CURLINFO_RETRY_AFTER

CURLINFO_PRIVATE

用戶的私有數據指針。CURLINFO_PRIVATE

CURLINFO_HTTPAUTH_AVAIL

可用的 HTTP 身份驗證方法。CURLINFO_HTTPAUTH_AVAIL

CURLINFO_PROXYAUTH_AVAIL

可用的 HTTP 代理身份驗證方法。CURLINFO_PROXYAUTH_AVAIL

CURLINFO_OS_ERRNO

上次連接失敗的 errno。CURLINFO_OS_ERRNO

CURLINFO_NUM_CONNECTS

用於先前傳輸的新成功連接數。CURLINFO_NUM_CONNECTS

CURLINFO_PRIMARY_IP

上次連接的 IP 地址。CURLINFO_PRIMARY_IP

CURLINFO_PRIMARY_PORT

上次連接的端口。CURLINFO_PRIMARY_PORT

CURLINFO_LOCAL_IP

上次連接的本端IP地址。CURLINFO_LOCAL_IP

CURLINFO_LOCAL_PORT

上次連接的本端端口。CURLINFO_LOCAL_PORT

CURLINFO_COOKIELIST

所有已知 cookie 的列表。CURLINFO_COOKIELIST

CURLINFO_LASTSOCKET

最后使用的套接字。CURLINFO_LASTSOCKET

CURLINFO_ACTIVESOCKET

會話的活動套接字。CURLINFO_ACTIVESOCKET

CURLINFO_FTP_ENTRY_PATH

登錄FTP服務器后的入口路徑。CURLINFO_FTP_ENTRY_PATH

CURLINFO_CERTINFO

證書鏈。CURLINFO_CERTINFO

CURLINFO_TLS_SSL_PTR

可用於進一步處理的 TLS 會話信息。CURLINFO_TLS_SSL_PTR

CURLINFO_TLS_SESSION

可用於進一步處理的 TLS 會話信息。請參閱CURLINFO_TLS_SESSION已棄用的選項,請改用CURLINFO_TLS_SSL_PTR

CURLINFO_CONDITION_UNMET

是否滿足時間條件或 304 HTTP 響應。CURLINFO_CONDITION_UNMET

CURLINFO_RTSP_SESSION_ID

RTSP 會話 ID。CURLINFO_RTSP_SESSION_ID

CURLINFO_RTSP_CLIENT_CSEQ

接下來將使用的 RTSP CSeq。CURLINFO_RTSP_CLIENT_CSEQ

CURLINFO_RTSP_SERVER_CSEQ

接下來預計的 RTSP CSeq。CURLINFO_RTSP_SERVER_CSEQ

CURLINFO_RTSP_CSEQ_RECV

上次接收到的 RTSP CSeq。CURLINFO_RTSP_CSEQ_RECV

CURLINFO_PROTOCOL

用於連接的協議。(在 7.52.0 中添加)參見CURLINFO_PROTOCOL

CURLINFO_SCHEME

用於連接的方案。(在 7.52.0 中添加)參見CURLINFO_SCHEME

 

  (5)設置curl句柄屬性函數

  CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);

  返回值CURLE_OK(0),代表成功.

  option取值如下:

CURLOPT_VERBOSE

顯示詳細信息。CURLOPT_VERBOSE

CURLOPT_HEADER

在正文輸出中包含標題。CURLOPT_HEADER

CURLOPT_NOPROGRESS

關閉進度表。CURLOPT_NOPROGRESS

CURLOPT_NOSIGNAL

不要安裝信號處理程序。CURLOPT_NOSIGNAL

CURLOPT_WILDCARDMATCH

根據文件名模式傳輸多個文件。CURLOPT_WILDCARDMATCH

  回調選項

 

CURLOPT_WRITEFUNCTION

寫入數據的回調。CURLOPT_WRITEFUNCTION

CURLOPT_WRITEDATA

傳遞給寫回調的數據指針。CURLOPT_WRITEDATA

CURLOPT_READFUNCTION

讀取數據的回調。CURLOPT_READFUNCTION

CURLOPT_READDATA

傳遞給讀取回調的數據指針。CURLOPT_READDATA

CURLOPT_IOCTLFUNCTION

I/O 操作的回調。CURLOPT_IOCTLFUNCTION

CURLOPT_IOCTLDATA

傳遞給 I/O 回調的數據指針。CURLOPT_IOCTLDATA

CURLOPT_SEEKFUNCTION

尋道操作的回調。CURLOPT_SEEKFUNCTION

CURLOPT_SEEKDATA

傳遞給搜索回調的數據指針。CURLOPT_SEEKDATA

CURLOPT_SOCKOPTFUNCTION

sockopt 操作的回調。CURLOPT_SOCKOPTFUNCTION

CURLOPT_SOCKOPTDATA

傳遞給 sockopt 回調的數據指針。CURLOPT_SOCKOPTDATA

CURLOPT_OPENSOCKETFUNCTION

創建套接字的回調。CURLOPT_OPENSOCKETFUNCTION

CURLOPT_OPENSOCKETDATA

傳遞給打開套接字回調的數據指針。CURLOPT_OPENSOCKETDATA

CURLOPT_CLOSESOCKETFUNCTION

關閉套接字的回調。CURLOPT_CLOSESOCKETFUNCTION

CURLOPT_CLOSESOCKETDATA

傳遞給關閉套接字回調的數據指針。CURLOPT_CLOSESOCKETDATA

CURLOPT_PROGRESSFUNCTION

進度表的過時回調。CURLOPT_PROGRESSFUNCTION

CURLOPT_PROGRESSDATA

傳遞給進度表回調的數據指針。CURLOPT_PROGRESSDATA

CURLOPT_XFERINFOFUNCTION

進度表的回調。CURLOPT_XFERINFOFUNCTION

CURLOPT_XFERINFODATA

傳遞給進度表回調的數據指針。CURLOPT_XFERINFODATA

CURLOPT_HEADERFUNCTION

用於寫入接收到的標頭的回調。CURLOPT_HEADERFUNCTION

CURLOPT_HEADERDATA

傳遞給標頭回調的數據指針。CURLOPT_HEADERDATA

CURLOPT_DEBUGFUNCTION

調試信息的回調。CURLOPT_DEBUGFUNCTION

CURLOPT_DEBUGDATA

傳遞給調試回調的數據指針。CURLOPT_DEBUGDATA

CURLOPT_SSL_CTX_FUNCTION

SSL 上下文邏輯的回調。CURLOPT_SSL_CTX_FUNCTION

CURLOPT_SSL_CTX_DATA

傳遞給 SSL 上下文回調的數據指針。CURLOPT_SSL_CTX_DATA

CURLOPT_CONV_TO_NETWORK_FUNCTION

代碼庫轉換的回調。CURLOPT_CONV_TO_NETWORK_FUNCTION

CURLOPT_CONV_FROM_NETWORK_FUNCTION

代碼庫轉換的回調。CURLOPT_CONV_FROM_NETWORK_FUNCTION

CURLOPT_CONV_FROM_UTF8_FUNCTION

代碼庫轉換的回調。CURLOPT_CONV_FROM_UTF8_FUNCTION

CURLOPT_INTERLEAVEFUNCTION

RTSP 交錯數據的回調。CURLOPT_INTERLEAVEFUNCTION

CURLOPT_INTERLEAVEDATA

傳遞給 RTSP 交錯回調的數據指針。CURLOPT_INTERLEAVEDATA

CURLOPT_CHUNK_BGN_FUNCTION

塊的通配符下載開始的回調。CURLOPT_CHUNK_BGN_FUNCTION

CURLOPT_CHUNK_END_FUNCTION

塊的通配符下載結束的回調。CURLOPT_CHUNK_END_FUNCTION

CURLOPT_CHUNK_DATA

傳遞給塊回調的數據指針。CURLOPT_CHUNK_DATA

CURLOPT_FNMATCH_FUNCTION

通配符匹配回調。CURLOPT_FNMATCH_FUNCTION

CURLOPT_FNMATCH_DATA

傳遞給通配符匹配回調的數據指針。CURLOPT_FNMATCH_DATA

CURLOPT_SUPPRESS_CONNECT_HEADERS

禁止來自用戶回調的代理 CONNECT 響應標頭。CURLOPT_SUPPRESS_CONNECT_HEADERS

CURLOPT_RESOLVER_START_FUNCTION

在開始新的解析請求之前調用的回調。CURLOPT_RESOLVER_START_FUNCTION

CURLOPT_RESOLVER_START_DATA

傳遞給解析器啟動回調的數據指針。CURLOPT_RESOLVER_START_DATA

CURLOPT_PREREQFUNCTION

在建立連接之后但在對該連接發出請求之前調用的回調。CURLOPT_PREREQFUNCTION

CURLOPT_PREREQDATA

傳遞給 CURLOPT_PREREQFUNCTION 回調的數據指針。CURLOPT_PREREQDATA

  錯誤選項

 

CURLOPT_ERRORBUFFER

錯誤消息緩沖區。CURLOPT_ERRORBUFFER

CURLOPT_STDERR

stderr 替換流。CURLOPT_STDERR

CURLOPT_FAILONERROR

因 HTTP 4xx 錯誤而失敗。CURLOPT_FAILONERROR

CURLOPT_KEEP_SENDING_ON_ERROR

繼續發送 HTTP >= 300 錯誤。CURLOPT_KEEP_SENDING_ON_ERROR

  網絡選項

 

CURLOPT_URL

要處理的 URL。CURLOPT_URL

CURLOPT_PATH_AS_IS

禁用壓縮路徑中的 /../ 和 /./ 序列。CURLOPT_PATH_AS_IS

CURLOPT_PROTOCOLS

允許的協議。CURLOPT_PROTOCOLS

CURLOPT_REDIR_PROTOCOLS

允許重定向到的協議。CURLOPT_REDIR_PROTOCOLS

CURLOPT_DEFAULT_PROTOCOL

默認協議。CURLOPT_DEFAULT_PROTOCOL

CURLOPT_PROXY

要使用的代理。CURLOPT_PROXY

CURLOPT_PRE_PROXY

要使用的襪子代理。CURLOPT_PRE_PROXY

CURLOPT_PROXYPORT

要使用的代理端口。CURLOPT_PROXYPORT

CURLOPT_PROXYTYPE

代理類型。CURLOPT_PROXYTYPE

CURLOPT_NOPROXY

從代理使用中過濾掉主機。CURLOPT_NOPROXY

CURLOPT_HTTPPROXYTUNNEL

通過 HTTP 代理隧道。CURLOPT_HTTPPROXYTUNNEL

CURLOPT_CONNECT_TO

連接到特定的主機和端口。CURLOPT_CONNECT_TO

CURLOPT_SOCKS5_AUTH

Socks5 認證方法。CURLOPT_SOCKS5_AUTH

CURLOPT_SOCKS5_GSSAPI_SERVICE

Socks5 GSSAPI 服務名稱。CURLOPT_SOCKS5_GSSAPI_SERVICE

CURLOPT_SOCKS5_GSSAPI_NEC

Socks5 GSSAPI NEC 模式。CURLOPT_SOCKS5_GSSAPI_NEC

CURLOPT_PROXY_SERVICE_NAME

代理身份驗證服務名稱。CURLOPT_PROXY_SERVICE_NAME

CURLOPT_HAPROXYPROTOCOL

發送 HAProxy PROXY 協議 v1 標頭。CURLOPT_HAPROXYPROTOCOL

CURLOPT_SERVICE_NAME

身份驗證服務名稱。CURLOPT_SERVICE_NAME

CURLOPT_INTERFACE

將本地連接綁定到此。CURLOPT_INTERFACE

CURLOPT_LOCALPORT

將本地連接綁定到此端口。CURLOPT_LOCALPORT

CURLOPT_LOCALPORTRANGE

將本地連接綁定到端口范圍。CURLOPT_LOCALPORTRANGE

CURLOPT_DNS_CACHE_TIMEOUT

DNS 緩存超時。CURLOPT_DNS_CACHE_TIMEOUT

CURLOPT_DNS_USE_GLOBAL_CACHE

OBSOLETE 啟用全局 DNS 緩存。CURLOPT_DNS_USE_GLOBAL_CACHE

CURLOPT_DOH_URL

使用此 DoH 服務器進行名稱解析。CURLOPT_DOH_URL

CURLOPT_BUFFERSIZE

詢問備用緩沖區大小。CURLOPT_BUFFERSIZE

CURLOPT_PORT

要連接的端口號。CURLOPT_PORT

CURLOPT_TCP_FASTOPEN

啟用 TFO、TCP 快速打開。CURLOPT_TCP_FASTOPEN

CURLOPT_TCP_NODELAY

禁用 Nagle 算法。CURLOPT_TCP_NODELAY

CURLOPT_ADDRESS_SCOPE

本地地址的 IPv6 范圍。CURLOPT_ADDRESS_SCOPE

CURLOPT_TCP_KEEPALIVE

啟用 TCP 保持活動。CURLOPT_TCP_KEEPALIVE

CURLOPT_TCP_KEEPIDLE

發送保持連接之前的空閑時間。CURLOPT_TCP_KEEPIDLE

CURLOPT_TCP_KEEPINTVL

保持活動探測之間的間隔。CURLOPT_TCP_KEEPINTVL

CURLOPT_UNIX_SOCKET_PATH

Unix 域套接字的路徑。CURLOPT_UNIX_SOCKET_PATH

CURLOPT_ABSTRACT_UNIX_SOCKET

抽象 Unix 域套接字的路徑。CURLOPT_ABSTRACT_UNIX_SOCKET

  名稱和密碼選項(身份驗證)

 

CURLOPT_NETRC

啟用 .netrc 解析。CURLOPT_NETRC

CURLOPT_NETRC_FILE

.netrc 文件名。CURLOPT_NETRC_FILE

CURLOPT_USERPWD

用戶名和密碼。CURLOPT_USERPWD

CURLOPT_PROXYUSERPWD

代理用戶名和密碼。CURLOPT_PROXYUSERPWD

CURLOPT_USERNAME

用戶名。CURLOPT_USERNAME

CURLOPT_PASSWORD

密碼。CURLOPT_PASSWORD

CURLOPT_LOGIN_OPTIONS

登錄選項。CURLOPT_LOGIN_OPTIONS

CURLOPT_PROXYUSERNAME

代理用戶名。CURLOPT_PROXYUSERNAME

CURLOPT_PROXYPASSWORD

代理密碼。CURLOPT_PROXYPASSWORD

CURLOPT_HTTPAUTH

HTTP 服務器身份驗證方法。CURLOPT_HTTPAUTH

CURLOPT_TLSAUTH_USERNAME

TLS 認證用戶名。CURLOPT_TLSAUTH_USERNAME

CURLOPT_PROXY_TLSAUTH_USERNAME

代理 TLS 身份驗證用戶名。CURLOPT_PROXY_TLSAUTH_USERNAME

CURLOPT_TLSAUTH_PASSWORD

TLS 認證密碼。CURLOPT_TLSAUTH_PASSWORD

CURLOPT_PROXY_TLSAUTH_PASSWORD

代理 TLS 身份驗證密碼。CURLOPT_PROXY_TLSAUTH_PASSWORD

CURLOPT_TLSAUTH_TYPE

TLS 身份驗證方法。CURLOPT_TLSAUTH_TYPE

CURLOPT_PROXY_TLSAUTH_TYPE

代理 TLS 身份驗證方法。CURLOPT_PROXY_TLSAUTH_TYPE

CURLOPT_PROXYAUTH

HTTP 代理身份驗證方法。CURLOPT_PROXYAUTH

CURLOPT_SASL_AUTHZID

SASL 授權身份(要充當的身份)。CURLOPT_SASL_AUTHZID

CURLOPT_SASL_IR

啟用 SASL 初始響應。CURLOPT_SASL_IR

CURLOPT_XOAUTH2_BEARER

OAuth2 不記名令牌。CURLOPT_XOAUTH2_BEARER

CURLOPT_DISALLOW_USERNAME_IN_URL

不允許在 URL 中使用用戶名。CURLOPT_DISALLOW_USERNAME_IN_URL

  Http 選項

 

CURLOPT_AUTOREFERER

自動設置 Referer: 標頭。CURLOPT_AUTOREFERER

CURLOPT_ACCEPT_ENCODING

接受編碼和自動解壓縮數據。CURLOPT_ACCEPT_ENCODING

CURLOPT_TRANSFER_ENCODING

請求傳輸編碼。CURLOPT_TRANSFER_ENCODING

CURLOPT_FOLLOWLOCATION

遵循 HTTP 重定向。CURLOPT_FOLLOWLOCATION

CURLOPT_UNRESTRICTED_AUTH

不要將身份驗證限制為原始主機。CURLOPT_UNRESTRICTED_AUTH

CURLOPT_MAXREDIRS

要遵循的最大重定向數。CURLOPT_MAXREDIRS

CURLOPT_POSTREDIR

POST 后如何處理重定向。CURLOPT_POSTREDIR

CURLOPT_PUT

發出 HTTP PUT 請求。CURLOPT_PUT

CURLOPT_POST

發出 HTTP POST 請求。CURLOPT_POST

CURLOPT_POSTFIELDS

使用此數據發送 POST。CURLOPT_POSTFIELDS

CURLOPT_POSTFIELDSIZE

POST 數據有這么大。CURLOPT_POSTFIELDSIZE

CURLOPT_POSTFIELDSIZE_LARGE

POST 數據有這么大。CURLOPT_POSTFIELDSIZE_LARGE

CURLOPT_COPYPOSTFIELDS

使用此數據發送 POST - 並復制它。CURLOPT_COPYPOSTFIELDS

CURLOPT_HTTPPOST

多部分 formpost HTTP POST。CURLOPT_HTTPPOST

CURLOPT_REFERER

參考:標題。CURLOPT_REFERER

CURLOPT_USERAGENT

用戶代理:標題。CURLOPT_USERAGENT

CURLOPT_HTTPHEADER

自定義 HTTP 標頭。CURLOPT_HTTPHEADER

CURLOPT_HEADEROPT

控制自定義標題。CURLOPT_HEADEROPT

CURLOPT_PROXYHEADER

發送到代理的自定義 HTTP 標頭。CURLOPT_PROXYHEADER

CURLOPT_HTTP200ALIASES

200 OK 的替代版本。CURLOPT_HTTP200ALIASES

CURLOPT_COOKIE

要發送的 Cookie。CURLOPT_COOKIE

CURLOPT_COOKIEFILE

從中讀取 cookie 的文件。CURLOPT_COOKIEFILE

CURLOPT_COOKIEJAR

要將 cookie 寫入的文件。CURLOPT_COOKIEJAR

CURLOPT_COOKIESESSION

開始一個新的 cookie 會話。CURLOPT_COOKIESESSION

CURLOPT_COOKIELIST

添加或控制 cookie。CURLOPT_COOKIELIST

CURLOPT_ALTSVC

指定 Alt-Svc: 緩存文件名。CURLOPT_ALTSVC

CURLOPT_ALTSVC_CTRL

啟用並配置 Alt-Svc: 處理。CURLOPT_ALTSVC_CTRL

CURLOPT_HSTS

設置 HSTS 緩存文件。CURLOPT_HSTS

CURLOPT_HSTS_CTRL

啟用 HSTS。CURLOPT_HSTS_CTRL

CURLOPT_HSTSREADFUNCTION

設置 HSTS 讀取回調。CURLOPT_HSTSREADFUNCTION

CURLOPT_HSTSREADDATA

傳遞指向 HSTS 讀取回調的指針。CURLOPT_HSTSREADDATA

CURLOPT_HSTSWRITEFUNCTION

設置 HSTS 寫回調。CURLOPT_HSTSWRITEFUNCTION

CURLOPT_HSTSWRITEDATA

傳遞指向 HSTS 寫入回調的指針。CURLOPT_HSTSWRITEDATA

CURLOPT_HTTPGET

執行 HTTP GET 請求。CURLOPT_HTTPGET

CURLOPT_REQUEST_TARGET

設置請求目標。CURLOPT_REQUEST_TARGET

CURLOPT_HTTP_VERSION

要使用的 HTTP 版本。CURLOPT_HTTP_VERSION

CURLOPT_HTTP09_ALLOWED

允許 HTTP/0.9 響應。CURLOPT_HTTP09_ALLOWED

CURLOPT_IGNORE_CONTENT_LENGTH

忽略內容長度。CURLOPT_IGNORE_CONTENT_LENGTH

CURLOPT_HTTP_CONTENT_DECODING

禁用內容解碼。CURLOPT_HTTP_CONTENT_DECODING

CURLOPT_HTTP_TRANSFER_DECODING

禁用傳輸解碼。CURLOPT_HTTP_TRANSFER_DECODING

CURLOPT_EXPECT_100_TIMEOUT_MS

100-繼續超時。CURLOPT_EXPECT_100_TIMEOUT_MS

CURLOPT_TRAILERFUNCTION

設置用於發送尾隨標頭的回調。CURLOPT_TRAILERFUNCTION

CURLOPT_TRAILERDATA

傳遞給尾隨標頭回調的自定義指針。CURLOPT_TRAILERDATA

CURLOPT_PIPEWAIT

等待連接到管道上。CURLOPT_PIPEWAIT

CURLOPT_STREAM_DEPENDS

這個 HTTP/2 流依賴於另一個。CURLOPT_STREAM_DEPENDS

CURLOPT_STREAM_DEPENDS_E

這個 HTTP/2 流完全依賴於另一個。CURLOPT_STREAM_DEPENDS_E

CURLOPT_STREAM_WEIGHT

設置此 HTTP/2 流的權重。CURLOPT_STREAM_WEIGHT

SMTP 選項

 

CURLOPT_MAIL_FROM

發件人地址。CURLOPT_MAIL_FROM

CURLOPT_MAIL_RCPT

收件人地址。CURLOPT_MAIL_RCPT

CURLOPT_MAIL_AUTH

認證地址。CURLOPT_MAIL_AUTH

CURLOPT_MAIL_RCPT_ALLLOWFAILS

允許 RCPT TO 命令對某些收件人失敗。CURLOPT_MAIL_RCPT_ALLLOWFAILS

  Tftp 選項

 

CURLOPT_TFTP_BLKSIZE

TFTP 塊大小。CURLOPT_TFTP_BLKSIZE

CURLOPT_TFTP_NO_OPTIONS

不要發送 TFTP 選項請求。CURLOPT_TFTP_NO_OPTIONS

  FTP選項

 

CURLOPT_FTPPORT

使用主動 FTP。CURLOPT_FTPPORT

CURLOPT_QUOTE

傳輸前要運行的命令。CURLOPT_QUOTE

CURLOPT_POSTQUOTE

傳輸后運行的命令。CURLOPT_POSTQUOTE

CURLOPT_PREQUOTE

在傳輸之前運行的命令。CURLOPT_PREQUOTE

CURLOPT_APPEND

附加到遠程文件。CURLOPT_APPEND

CURLOPT_FTP_USE_EPRT

使用 EPTR。CURLOPT_FTP_USE_EPRT

CURLOPT_FTP_USE_EPSV

使用 EPSV。CURLOPT_FTP_USE_EPSV

CURLOPT_FTP_USE_PRET

使用 PRET。CURLOPT_FTP_USE_PRET

CURLOPT_FTP_CREATE_MISSING_DIRS

在遠程服務器上創建丟失的目錄。CURLOPT_FTP_CREATE_MISSING_DIRS

CURLOPT_FTP_RESPONSE_TIMEOUT

FTP 響應超時。CURLOPT_FTP_RESPONSE_TIMEOUT

CURLOPT_FTP_ALTERNATIVE_TO_USER

替代用戶。CURLOPT_FTP_ALTERNATIVE_TO_USER

CURLOPT_FTP_SKIP_PASV_IP

忽略 PASV 響應中的 IP 地址。CURLOPT_FTP_SKIP_PASV_IP

CURLOPT_FTPSSLAUTH

控制如何做 TLS。CURLOPT_FTPSSLAUTH

CURLOPT_FTP_SSL_CCC

身份驗證后再次返回非 TLS。CURLOPT_FTP_SSL_CCC

CURLOPT_FTP_ACCOUNT

發送 ACCT 命令。CURLOPT_FTP_ACCOUNT

CURLOPT_FTP_FILEMETHOD

指定如何訪問文件。CURLOPT_FTP_FILEMETHOD

  Rtsp 選項

 

CURLOPT_RTSP_REQUEST

RTSP 請求。CURLOPT_RTSP_REQUEST

CURLOPT_RTSP_SESSION_ID

RTSP 會話 ID。CURLOPT_RTSP_SESSION_ID

CURLOPT_RTSP_STREAM_URI

RTSP 流 URI。CURLOPT_RTSP_STREAM_URI

CURLOPT_RTSP_TRANSPORT

RTSP 傳輸:標頭。CURLOPT_RTSP_TRANSPORT

CURLOPT_RTSP_CLIENT_CSEQ

客戶端 CSEQ 編號。CURLOPT_RTSP_CLIENT_CSEQ

CURLOPT_RTSP_SERVER_CSEQ

RTSP 服務器-> 客戶端請求的 CSEQ 編號。CURLOPT_RTSP_SERVER_CSEQ

CURLOPT_AWS_SIGV4

AWS HTTP V4 簽名。CURLOPT_AWS_SIGV4

  協議選項

 

CURLOPT_TRANSFERTEXT

使用文本傳輸。CURLOPT_TRANSFERTEXT

CURLOPT_PROXY_TRANSFER_MODE

通過代理為 URL 添加傳輸模式。CURLOPT_PROXY_TRANSFER_MODE

CURLOPT_CRLF

轉換換行符。CURLOPT_CRLF

CURLOPT_RANGE

范圍請求。CURLOPT_RANGE

CURLOPT_RESUME_FROM

恢復傳輸。CURLOPT_RESUME_FROM

CURLOPT_RESUME_FROM_LARGE

恢復傳輸。CURLOPT_RESUME_FROM_LARGE

CURLOPT_CURLU

設置 URL 以使用 CURLU *。CURLOPT_CURLU

CURLOPT_CUSTOMREQUEST

自定義請求/方法。CURLOPT_CUSTOMREQUEST

CURLOPT_FILETIME

請求文件修改日期和時間。CURLOPT_FILETIME

CURLOPT_DIRLISTONLY

僅列出。CURLOPT_DIRLISTOLY

CURLOPT_NOBODY

不要獲取正文內容。CURLOPT_NOBODY

CURLOPT_INFILESIZE

要發送的文件大小。CURLOPT_INFILESIZE

CURLOPT_INFILESIZE_LARGE

要發送的文件大小。CURLOPT_INFILESIZE_LARGE

CURLOPT_UPLOAD

上傳數據。CURLOPT_UPLOAD

CURLOPT_UPLOAD_BUFFERSIZE

設置上傳緩沖區大小。CURLOPT_UPLOAD_BUFFERSIZE

CURLOPT_MIMEPOST

發布/發送 MIME 數據。CURLOPT_MIMEPOST

CURLOPT_MAXFILESIZE

要獲取的最大文件大小。CURLOPT_MAXFILESIZE

CURLOPT_MAXFILESIZE_LARGE

要獲取的最大文件大小。CURLOPT_MAXFILESIZE_LARGE

CURLOPT_TIMECONDITION

提出時間條件請求。CURLOPT_TIMECONDITION

CURLOPT_TIMEVALUE

時間條件請求的時間值。CURLOPT_TIMEVALUE

CURLOPT_TIMEVALUE_LARGE

時間條件請求的時間值。CURLOPT_TIMEVALUE_LARGE

  連接選項

 

CURLOPT_TIMEOUT

整個請求超時。CURLOPT_TIMEOUT

CURLOPT_TIMEOUT_MS

整個請求的毫秒超時。CURLOPT_TIMEOUT_MS

CURLOPT_LOW_SPEED_LIMIT

中止傳輸的低速限制。CURLOPT_LOW_SPEED_LIMIT

CURLOPT_LOW_SPEED_TIME

低於速度觸發低速中止的時間。CURLOPT_LOW_SPEED_TIME

CURLOPT_MAX_SEND_SPEED_LARGE

將上傳速度限制在此。CURLOPT_MAX_SEND_SPEED_LARGE

CURLOPT_MAX_RECV_SPEED_LARGE

將下載速度限制在此。CURLOPT_MAX_RECV_SPEED_LARGE

CURLOPT_MAXCONNECTS

連接池中的最大連接數。CURLOPT_MAXCONNECTS

CURLOPT_FRESH_CONNECT

使用新的連接。CURLOPT_FRESH_CONNECT

CURLOPT_FORBID_REUSE

防止后續連接重復使用它。CURLOPT_FORBID_REUSE

CURLOPT_MAXAGE_CONN

限制連接的年齡(空閑時間)以供重用。CURLOPT_MAXAGE_CONN

CURLOPT_MAXLIFETIME_CONN

限制連接的時間(自創建以來)以供重用。CURLOPT_MAXLIFETIME_CONN

CURLOPT_CONNECTTIMEOUT

連接階段超時。CURLOPT_CONNECTTIMEOUT

CURLOPT_CONNECTTIMEOUT_MS

連接階段的毫秒超時。CURLOPT_CONNECTTIMEOUT_MS

CURLOPT_IPRESOLVE

要使用的 IP 版本。CURLOPT_IPRESOLVE

CURLOPT_CONNECT_ONLY

只連接,沒有別的。CURLOPT_CONNECT_ONLY

CURLOPT_USE_SSL

使用 TLS/SSL。CURLOPT_USE_SSL

CURLOPT_RESOLVE

提供固定/假名稱解析。CURLOPT_RESOLVE

CURLOPT_DNS_INTERFACE

綁定名稱解析為此接口。CURLOPT_DNS_INTERFACE

CURLOPT_DNS_LOCAL_IP4

綁定名稱解析為此 IP4 地址。CURLOPT_DNS_LOCAL_IP4

CURLOPT_DNS_LOCAL_IP6

綁定名稱解析為此 IP6 地址。CURLOPT_DNS_LOCAL_IP6

CURLOPT_DNS_SERVERS

首選 DNS 服務器。CURLOPT_DNS_SERVERS

CURLOPT_DNS_SHUFFLE_ADDRESSES

使用前洗牌地址。CURLOPT_DNS_SHUFFLE_ADDRESSES

CURLOPT_ACCEPTTIMEOUT_MS

等待服務器的連接被接受的超時時間。CURLOPT_ACCEPTTIMEOUT_MS

CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS

快樂眼球超時。CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS

CURLOPT_UPKEEP_INTERVAL_MS

設置執行連接維護的時間間隔。CURLOPT_UPKEEP_INTERVAL_MS

  SSL 和安全選項

 

CURLOPT_SSLCERT

客戶端證書。CURLOPT_SSLCERT

CURLOPT_SSLCERT_BLOB

客戶端證書內存緩沖區。CURLOPT_SSLCERT_BLOB

CURLOPT_PROXY_SSLCERT

代理客戶端證書。CURLOPT_PROXY_SSLCERT

CURLOPT_PROXY_SSLCERT_BLOB

代理客戶端證書內存緩沖區。CURLOPT_PROXY_SSLCERT_BLOB

CURLOPT_SSLCERTTYPE

客戶端證書類型。CURLOPT_SSLCERTTYPE

CURLOPT_PROXY_SSLCERTTYPE

代理客戶端證書類型。CURLOPT_PROXY_SSLCERTTYPE

CURLOPT_SSLKEY

客戶端密鑰。CURLOPT_SSLKEY

CURLOPT_SSLKEY_BLOB

客戶端密鑰內存緩沖區。CURLOPT_SSLKEY_BLOB

CURLOPT_PROXY_SSLKEY

代理客戶端密鑰。CURLOPT_PROXY_SSLKEY

CURLOPT_PROXY_SSLKEY_BLOB

代理客戶端密鑰。CURLOPT_PROXY_SSLKEY_BLOB

CURLOPT_SSLKEYTYPE

客戶端密鑰類型。CURLOPT_SSLKEYTYPE

CURLOPT_PROXY_SSLKEYTYPE

代理客戶端密鑰類型。CURLOPT_PROXY_SSLKEYTYPE

CURLOPT_KEYPASSWD

客戶端密鑰密碼。CURLOPT_KEYPASSWD

CURLOPT_PROXY_KEYPASSWD

代理客戶端密鑰密碼。CURLOPT_PROXY_KEYPASSWD

CURLOPT_SSL_EC_CURVES

設置密鑰交換曲線。CURLOPT_SSL_EC_CURVES

CURLOPT_SSL_ENABLE_ALPN

啟用 ALPN。CURLOPT_SSL_ENABLE_ALPN

CURLOPT_SSL_ENABLE_NPN

啟用 NPN 的使用。CURLOPT_SSL_ENABLE_NPN

CURLOPT_SSLENGINE

將標識符與 SSL 引擎一起使用。CURLOPT_SSLENGINE

CURLOPT_SSLENGINE_DEFAULT

默認 SSL 引擎。CURLOPT_SSLENGINE_DEFAULT

CURLOPT_SSL_FALSESTART

啟用 TLS 錯誤啟動。CURLOPT_SSL_FALSESTART

CURLOPT_SSLVERSION

要使用的 SSL 版本。CURLOPT_SSLVERSION

CURLOPT_PROXY_SSLVERSION

要使用的代理 SSL 版本。CURLOPT_PROXY_SSLVERSION

CURLOPT_SSL_VERIFYHOST

驗證 SSL 證書中的主機名。CURLOPT_SSL_VERIFYHOST

CURLOPT_DOH_SSL_VERIFYHOST

驗證 DoH (DNS-over-HTTPS) SSL 證書中的主機名。CURLOPT_DOH_SSL_VERIFYHOST

CURLOPT_PROXY_SSL_VERIFYHOST

驗證代理 SSL 證書中的主機名。CURLOPT_PROXY_SSL_VERIFYHOST

CURLOPT_SSL_VERIFYPEER

驗證 SSL 證書。CURLOPT_SSL_VERIFYPEER

CURLOPT_DOH_SSL_VERIFYPEER

驗證 DoH (DNS-over-HTTPS) SSL 證書。CURLOPT_DOH_SSL_VERIFYPEER

CURLOPT_PROXY_SSL_VERIFYPEER

驗證代理 SSL 證書。CURLOPT_PROXY_SSL_VERIFYPEER

CURLOPT_SSL_VERIFYSTATUS

驗證 SSL 證書的狀態。CURLOPT_SSL_VERIFYSTATUS

CURLOPT_DOH_SSL_VERIFYSTATUS

驗證 DoH (DNS-over-HTTPS) SSL 證書的狀態。CURLOPT_DOH_SSL_VERIFYSTATUS

CURLOPT_CAINFO

CA 證書包。CURLOPT_CAINFO

CURLOPT_CAINFO_BLOB

CA 證書捆綁內存緩沖區。CURLOPT_CAINFO_BLOB

CURLOPT_PROXY_CAINFO

代理 CA 證書包。CURLOPT_PROXY_CAINFO

CURLOPT_PROXY_CAINFO_BLOB

代理 CA 證書捆綁內存緩沖區。CURLOPT_PROXY_CAINFO_BLOB

CURLOPT_ISSUERCERT

發行人證書。CURLOPT_ISSUERCERT

CURLOPT_ISSUERCERT_BLOB

頒發者證書內存緩沖區。CURLOPT_ISSUERCERT_BLOB

CURLOPT_PROXY_ISSUERCERT

代理頒發者證書。CURLOPT_PROXY_ISSUERCERT

CURLOPT_PROXY_ISSUERCERT_BLOB

代理頒發者證書內存緩沖區。CURLOPT_PROXY_ISSUERCERT_BLOB

CURLOPT_CAPATH

CA 證書包的路徑。CURLOPT_CAPATH

CURLOPT_PROXY_CAPATH

代理 CA 證書包的路徑。CURLOPT_PROXY_CAPATH

CURLOPT_CRLFILE

證書吊銷列表。CURLOPT_CRLFILE

CURLOPT_PROXY_CRLFILE

代理證書吊銷列表。CURLOPT_PROXY_CRLFILE

CURLOPT_CERTINFO

提取證書信息。CURLOPT_CERTINFO

CURLOPT_PINNEDPUBLICKEY

設置固定 SSL 公鑰。CURLOPT_PINNEDPUBLICKEY

CURLOPT_PROXY_PINNEDPUBLICKEY

設置代理的固定 SSL 公鑰。CURLOPT_PROXY_PINNEDPUBLICKEY

CURLOPT_RANDOM_FILE

提供熵隨機數據的來源。CURLOPT_RANDOM_FILE

CURLOPT_EGDSOCKET

識別 EGD 套接字以獲取熵。CURLOPT_EGDSOCKET

CURLOPT_SSL_CIPHER_LIST

要使用的密碼。CURLOPT_SSL_CIPHER_LIST

CURLOPT_PROXY_SSL_CIPHER_LIST

要使用的代理密碼。CURLOPT_PROXY_SSL_CIPHER_LIST

CURLOPT_TLS13_CIPHERS

要使用的 TLS 1.3 密碼套件。CURLOPT_TLS13_CIPHERS

CURLOPT_PROXY_TLS13_CIPHERS

要使用的代理 TLS 1.3 密碼套件。CURLOPT_PROXY_TLS13_CIPHERS

CURLOPT_SSL_SESSIONID_CACHE

禁用 SSL 會話 ID 緩存。CURLOPT_SSL_SESSIONID_CACHE

CURLOPT_SSL_OPTIONS

控制 SSL 行為。CURLOPT_SSL_OPTIONS

CURLOPT_PROXY_SSL_OPTIONS

控制代理 SSL 行為。CURLOPT_PROXY_SSL_OPTIONS

CURLOPT_KRBLEVEL

Kerberos 安全級別。CURLOPT_KRBLEVEL

CURLOPT_GSSAPI_DELEGATION

禁用 GSS-API 委派。CURLOPT_GSSAPI_DELEGATION

  SSH 選項

 

CURLOPT_SSH_AUTH_TYPES

SSH 身份驗證類型。CURLOPT_SSH_AUTH_TYPES

CURLOPT_SSH_COMPRESSION

啟用 SSH 壓縮。CURLOPT_SSH_COMPRESSION

CURLOPT_SSH_HOST_PUBLIC_KEY_MD5

主機公鑰的 MD5。CURLOPT_SSH_HOST_PUBLIC_KEY_MD5

CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256

主機公鑰的 SHA256。CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256

CURLOPT_SSH_PUBLIC_KEYFILE

公鑰的文件名。CURLOPT_SSH_PUBLIC_KEYFILE

CURLOPT_SSH_PRIVATE_KEYFILE

私鑰的文件名。CURLOPT_SSH_PRIVATE_KEYFILE

CURLOPT_SSH_KNOWNHOSTS

已知主機的文件名。CURLOPT_SSH_KNOWNHOSTS

CURLOPT_SSH_KEYFUNCTION

已知主機處理的回調。CURLOPT_SSH_KEYFUNCTION

CURLOPT_SSH_KEYDATA

傳遞給 ssh 密鑰回調的自定義指針。CURLOPT_SSH_KEYDATA

  其他選項

 

CURLOPT_PRIVATE

要存儲的私有指針。CURLOPT_PRIVATE

CURLOPT_SHARE

共享對象使用。CURLOPT_SHARE

CURLOPT_NEW_FILE_PERMS

用於創建新遠程文件的模式。CURLOPT_NEW_FILE_PERMS

CURLOPT_NEW_DIRECTORY_PERMS

創建新遠程目錄的模式。CURLOPT_NEW_DIRECTORY_PERMS

  遠程登錄選項

 

CURLOPT_TELNETOPTIONS

遠程登錄選項。CURLOPT_TELNETOPTIONS

  (6)其他比較少用的easy api,包括:

curl_version() 返回指向 libcurl 版本字符串的指針
curl_getdate() 將日期字符串轉換為 time_t
curl_mime_init() ...和家庭,構建多部分表單數據帖子
curl_formadd() (舊式)構建多部分表單數據帖子
curl_slist_append() 建立一個鏈表
curl_slist_free_all() 釋放使用 curl_slist_append() 制作的整個 curl_slist
curl_easy_escape() URL 編碼一個字符串
curl_easy_unescape() URL 解碼字符串

  2.2 multi interface

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM