| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- .\" generated by cd2nroff 0.1 from curl_easy_getinfo.md
- .TH curl_easy_getinfo 3 "2025-01-17" libcurl
- .SH NAME
- curl_easy_getinfo \- extract information from a curl handle
- .SH SYNOPSIS
- .nf
- #include <curl/curl.h>
- CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );
- .fi
- .SH DESCRIPTION
- Get the \fIinfo\fP kept in the \fIcurl\fP handle. The third argument \fBMUST\fP be
- pointing to the specific type of the used option which is documented in each
- man page of the \fIinfo\fP option. The data is stored accordingly and can be
- relied upon only if this function returns CURLE_OK. Use this function after a
- performed transfer if you want to get transfer related data.
- You should not free the memory returned by this function unless it is
- explicitly mentioned below.
- .SH OPTIONS
- The following information can be extracted:
- .IP CURLINFO_ACTIVESOCKET
- The session\(aqs active socket. See \fICURLINFO_ACTIVESOCKET(3)\fP
- .IP CURLINFO_APPCONNECT_TIME
- The time it took from the start until the SSL connect/handshake with the
- remote host was completed as a double in number of seconds. (Added in 7.19.0)
- .IP CURLINFO_APPCONNECT_TIME_T
- The time it took from the start until the SSL connect/handshake with the
- remote host was completed in number of microseconds. (Added in 7.60.0) See
- \fICURLINFO_APPCONNECT_TIME_T(3)\fP
- .IP CURLINFO_CAINFO
- Get the default value for \fICURLOPT_CAINFO(3)\fP. See \fICURLINFO_CAINFO(3)\fP
- .IP CURLINFO_CAPATH
- Get the default value for \fICURLOPT_CAPATH(3)\fP. See \fICURLINFO_CAPATH(3)\fP
- .IP CURLINFO_CERTINFO
- Certificate chain. See \fICURLINFO_CERTINFO(3)\fP
- .IP CURLINFO_CONDITION_UNMET
- Whether or not a time conditional was met or 304 HTTP response.
- See \fICURLINFO_CONDITION_UNMET(3)\fP
- .IP CURLINFO_CONNECT_TIME
- The time it took from the start until the connect to the remote host (or
- proxy) was completed. As a double. See \fICURLINFO_CONNECT_TIME(3)\fP
- .IP CURLINFO_CONNECT_TIME_T
- The time it took from the start until the connect to the remote host (or
- proxy) was completed. In microseconds. See \fICURLINFO_CONNECT_TIME_T(3)\fP.
- .IP CURLINFO_CONN_ID
- The ID of the last connection used by the transfer. (Added in 8.2.0)
- See \fICURLINFO_CONN_ID(3)\fP
- .IP CURLINFO_CONTENT_LENGTH_DOWNLOAD
- (\fBDeprecated\fP) Content length from the Content\-Length header.
- See \fICURLINFO_CONTENT_LENGTH_DOWNLOAD(3)\fP
- .IP CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
- Content length from the Content\-Length header.
- See \fICURLINFO_CONTENT_LENGTH_DOWNLOAD_T(3)\fP
- .IP CURLINFO_CONTENT_LENGTH_UPLOAD
- (\fBDeprecated\fP) Upload size. See \fICURLINFO_CONTENT_LENGTH_UPLOAD(3)\fP
- .IP CURLINFO_CONTENT_LENGTH_UPLOAD_T
- Upload size. See \fICURLINFO_CONTENT_LENGTH_UPLOAD_T(3)\fP
- .IP CURLINFO_CONTENT_TYPE
- Content type from the \fIContent\-Type:\fP header. We recommend using
- \fIcurl_easy_header(3)\fP instead. See \fICURLINFO_CONTENT_TYPE(3)\fP
- .IP CURLINFO_COOKIELIST
- List of all known cookies. See \fICURLINFO_COOKIELIST(3)\fP
- .IP CURLINFO_EFFECTIVE_METHOD
- Last used HTTP method. See \fICURLINFO_EFFECTIVE_METHOD(3)\fP
- .IP CURLINFO_EFFECTIVE_URL
- Last used URL. See \fICURLINFO_EFFECTIVE_URL(3)\fP
- .IP CURLINFO_FILETIME
- Remote time of the retrieved document. See \fICURLINFO_FILETIME(3)\fP
- .IP CURLINFO_FILETIME_T
- Remote time of the retrieved document. See \fICURLINFO_FILETIME_T(3)\fP
- .IP CURLINFO_FTP_ENTRY_PATH
- The entry path after logging in to an FTP server. See
- \fICURLINFO_FTP_ENTRY_PATH(3)\fP
- .IP CURLINFO_HEADER_SIZE
- Number of bytes of all headers received. See \fICURLINFO_HEADER_SIZE(3)\fP
- .IP CURLINFO_HTTPAUTH_AVAIL
- Available HTTP authentication methods. See \fICURLINFO_HTTPAUTH_AVAIL(3)\fP
- .IP CURLINFO_HTTP_CONNECTCODE
- Last proxy CONNECT response code. See \fICURLINFO_HTTP_CONNECTCODE(3)\fP
- .IP CURLINFO_HTTP_VERSION
- The http version used in the connection. See \fICURLINFO_HTTP_VERSION(3)\fP
- .IP CURLINFO_LASTSOCKET
- (\fBDeprecated\fP) Last socket used. See \fICURLINFO_LASTSOCKET(3)\fP
- .IP CURLINFO_LOCAL_IP
- Source IP address of the last connection. See \fICURLINFO_LOCAL_IP(3)\fP
- .IP CURLINFO_LOCAL_PORT
- Source port number of the last connection. See \fICURLINFO_LOCAL_PORT(3)\fP
- .IP CURLINFO_NAMELOOKUP_TIME
- Time from start until name resolving completed as a double. See
- \fICURLINFO_NAMELOOKUP_TIME(3)\fP
- .IP CURLINFO_NAMELOOKUP_TIME_T
- Time from start until name resolving completed in number of microseconds. See
- \fICURLINFO_NAMELOOKUP_TIME_T(3)\fP
- .IP CURLINFO_NUM_CONNECTS
- Number of new successful connections used for previous transfer.
- See \fICURLINFO_NUM_CONNECTS(3)\fP
- .IP CURLINFO_OS_ERRNO
- The errno from the last failure to connect. See \fICURLINFO_OS_ERRNO(3)\fP
- .IP CURLINFO_PRETRANSFER_TIME
- The time it took from the start until the file transfer is just about to
- begin. This includes all pre\-transfer commands and negotiations that are
- specific to the particular protocol(s) involved. See
- \fICURLINFO_PRETRANSFER_TIME(3)\fP
- .IP CURLINFO_PRETRANSFER_TIME_T
- The time it took from the start until the file transfer is just about to
- begin. This includes all pre\-transfer commands and negotiations that are
- specific to the particular protocol(s) involved. In microseconds. See
- \fICURLINFO_PRETRANSFER_TIME_T(3)\fP
- .IP CURLINFO_PRIMARY_IP
- Destination IP address of the last connection. See \fICURLINFO_PRIMARY_IP(3)\fP
- .IP CURLINFO_PRIMARY_PORT
- Destination port of the last connection. See \fICURLINFO_PRIMARY_PORT(3)\fP
- .IP CURLINFO_PRIVATE
- User\(aqs private data pointer. See \fICURLINFO_PRIVATE(3)\fP
- .IP CURLINFO_PROTOCOL
- (\fBDeprecated\fP) The protocol used for the connection. (Added in 7.52.0) See
- \fICURLINFO_PROTOCOL(3)\fP
- .IP CURLINFO_PROXYAUTH_AVAIL
- Available HTTP proxy authentication methods. See \fICURLINFO_PROXYAUTH_AVAIL(3)\fP
- .IP CURLINFO_PROXY_ERROR
- Detailed proxy error. See \fICURLINFO_PROXY_ERROR(3)\fP
- .IP CURLINFO_PROXY_SSL_VERIFYRESULT
- Proxy certificate verification result. See \fICURLINFO_PROXY_SSL_VERIFYRESULT(3)\fP
- .IP CURLINFO_QUEUE_TIME_T
- The time during which the transfer was held in a waiting queue before it could
- start for real in number of microseconds. (Added in 8.6.0) See
- \fICURLINFO_QUEUE_TIME_T(3)\fP
- .IP CURLINFO_REDIRECT_COUNT
- Total number of redirects that were followed. See \fICURLINFO_REDIRECT_COUNT(3)\fP
- .IP CURLINFO_REDIRECT_TIME
- The time it took for all redirection steps include name lookup, connect,
- pretransfer and transfer before final transaction was started. So, this is
- zero if no redirection took place. As a double. See \fICURLINFO_REDIRECT_TIME(3)\fP
- .IP CURLINFO_REDIRECT_TIME_T
- The time it took for all redirection steps include name lookup, connect,
- pretransfer and transfer before final transaction was started. So, this is
- zero if no redirection took place. In number of microseconds. See
- \fICURLINFO_REDIRECT_TIME_T(3)\fP
- .IP CURLINFO_REDIRECT_URL
- URL a redirect would take you to, had you enabled redirects. See
- \fICURLINFO_REDIRECT_URL(3)\fP
- .IP CURLINFO_REFERER
- Referrer header. See \fICURLINFO_REFERER(3)\fP
- .IP CURLINFO_REQUEST_SIZE
- Number of bytes sent in the issued HTTP requests. See \fICURLINFO_REQUEST_SIZE(3)\fP
- .IP CURLINFO_RESPONSE_CODE
- Last received response code. See \fICURLINFO_RESPONSE_CODE(3)\fP
- .IP CURLINFO_RETRY_AFTER
- The value from the Retry\-After header. See \fICURLINFO_RETRY_AFTER(3)\fP
- .IP CURLINFO_RTSP_CLIENT_CSEQ
- The RTSP client CSeq that is expected next. See \fICURLINFO_RTSP_CLIENT_CSEQ(3)\fP
- .IP CURLINFO_RTSP_CSEQ_RECV
- RTSP CSeq last received. See \fICURLINFO_RTSP_CSEQ_RECV(3)\fP
- .IP CURLINFO_RTSP_SERVER_CSEQ
- The RTSP server CSeq that is expected next. See \fICURLINFO_RTSP_SERVER_CSEQ(3)\fP
- .IP CURLINFO_RTSP_SESSION_ID
- RTSP session ID. See \fICURLINFO_RTSP_SESSION_ID(3)\fP
- .IP CURLINFO_SCHEME
- The scheme used for the connection. (Added in 7.52.0) See \fICURLINFO_SCHEME(3)\fP
- .IP CURLINFO_SIZE_DOWNLOAD
- (\fBDeprecated\fP) Number of bytes downloaded. See \fICURLINFO_SIZE_DOWNLOAD(3)\fP
- .IP CURLINFO_SIZE_DOWNLOAD_T
- Number of bytes downloaded. See \fICURLINFO_SIZE_DOWNLOAD_T(3)\fP
- .IP CURLINFO_SIZE_UPLOAD
- (\fBDeprecated\fP) Number of bytes uploaded. See \fICURLINFO_SIZE_UPLOAD(3)\fP
- .IP CURLINFO_SIZE_UPLOAD_T
- Number of bytes uploaded. See \fICURLINFO_SIZE_UPLOAD_T(3)\fP
- .IP CURLINFO_SPEED_DOWNLOAD
- (\fBDeprecated\fP) Average download speed. See \fICURLINFO_SPEED_DOWNLOAD(3)\fP
- .IP CURLINFO_SPEED_DOWNLOAD_T
- Average download speed. See \fICURLINFO_SPEED_DOWNLOAD_T(3)\fP
- .IP CURLINFO_SPEED_UPLOAD
- (\fBDeprecated\fP) Average upload speed. See \fICURLINFO_SPEED_UPLOAD(3)\fP
- .IP CURLINFO_SPEED_UPLOAD_T
- Average upload speed in number of bytes per second. See
- \fICURLINFO_SPEED_UPLOAD_T(3)\fP
- .IP CURLINFO_SSL_ENGINES
- A list of OpenSSL crypto engines. See \fICURLINFO_SSL_ENGINES(3)\fP
- .IP CURLINFO_SSL_VERIFYRESULT
- Certificate verification result. See \fICURLINFO_SSL_VERIFYRESULT(3)\fP
- .IP CURLINFO_STARTTRANSFER_TIME
- The time it took from the start until the first byte is received by libcurl.
- As a double. See \fICURLINFO_STARTTRANSFER_TIME(3)\fP
- .IP CURLINFO_STARTTRANSFER_TIME_T
- The time it took from the start until the first byte is received by libcurl.
- In microseconds. See \fICURLINFO_STARTTRANSFER_TIME_T(3)\fP
- .IP CURLINFO_TLS_SESSION
- (\fBDeprecated\fP) TLS session info that can be used for further processing. See
- \fICURLINFO_TLS_SESSION(3)\fP. Use \fICURLINFO_TLS_SSL_PTR(3)\fP instead!
- .IP CURLINFO_TLS_SSL_PTR
- TLS session info that can be used for further processing. See
- \fICURLINFO_TLS_SSL_PTR(3)\fP
- .IP CURLINFO_TOTAL_TIME
- Total time of previous transfer. See \fICURLINFO_TOTAL_TIME(3)\fP
- .IP CURLINFO_TOTAL_TIME_T
- Total time of previous transfer. See \fICURLINFO_TOTAL_TIME_T(3)\fP
- .IP CURLINFO_USED_PROXY
- Whether the proxy was used (Added in 8.7.0). See \fICURLINFO_USED_PROXY(3)\fP
- .IP CURLINFO_XFER_ID
- The ID of the transfer. (Added in 8.2.0) See \fICURLINFO_XFER_ID(3)\fP
- .SH TIMES
- An overview of the time values available from \fIcurl_easy_getinfo(3)\fP
- .nf
- curl_easy_perform()
- |
- |--QUEUE
- |--|--NAMELOOKUP
- |--|--|--CONNECT
- |--|--|--|--APPCONNECT
- |--|--|--|--|--PRETRANSFER
- |--|--|--|--|--|--STARTTRANSFER
- |--|--|--|--|--|--|--TOTAL
- |--|--|--|--|--|--|--REDIRECT
- .fi
- \fICURLINFO_QUEUE_TIME_T(3)\fP, \fICURLINFO_NAMELOOKUP_TIME_T(3)\fP,
- \fICURLINFO_CONNECT_TIME_T(3)\fP, \fICURLINFO_APPCONNECT_TIME_T(3)\fP,
- \fICURLINFO_PRETRANSFER_TIME_T(3)\fP, \fICURLINFO_STARTTRANSFER_TIME_T(3)\fP,
- \fICURLINFO_TOTAL_TIME_T(3)\fP, \fICURLINFO_REDIRECT_TIME_T(3)\fP
- .SH PROTOCOLS
- This functionality affects all supported protocols
- .SH EXAMPLE
- .nf
- int main(void)
- {
- CURL *curl = curl_easy_init();
- if(curl) {
- CURLcode res;
- curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
- res = curl_easy_perform(curl);
- if(CURLE_OK == res) {
- char *ct;
- /* ask for the content-type */
- res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct);
- if((CURLE_OK == res) && ct)
- printf("We received Content-Type: %s\\n", ct);
- }
- /* always cleanup */
- curl_easy_cleanup(curl);
- }
- }
- .fi
- .SH AVAILABILITY
- Added in curl 7.4.1
- .SH RETURN VALUE
- If the operation was successful, CURLE_OK is returned. Otherwise an
- appropriate error code is returned.
- .SH SEE ALSO
- .BR curl_easy_setopt (3)
|