Curl

net. Curl

Curl 包含用于执行 Web 请求的类和选项。

Classes

Easy
Multi

Members

(static, constant) info :Number

作为参数传递给 net.Curl.Easy#getInfo 以获取每个请求的相关信息。

  • EFFECTIVE_URL 传入 char 指针的指针,用于接收最后使用的有效 URL。

  • RESPONSE_CODE 传入 long 指针,用于接收最后收到的 HTTP、FTP 或 SMTP 响应码。在 libcurl 7.10.7 及更早版本中,此选项称为 CURLINFO_HTTP_CODE。如果未收到服务器响应码,则值为零。注意,代理的 CONNECT 响应应通过 CURLINFO_HTTP_CONNECTCODE 读取,而非此选项。

  • HTTP_CONNECTCODE 传入 long 指针,用于接收对 CONNECT 请求的最后收到的代理响应码。

  • FILETIME 传入 long 指针,用于接收检索到的文档的远程时间(自 1970 年 1 月 1 日以来的秒数,GMT/UTC 时区)。如果返回 -1,可能是由于多种原因(未知、服务器隐藏或服务器不支持返回文档时间的命令等)。注意,必须在传输前通过 curl_easy_setopt(3) 的 CURLOPT_FILETIME(3) 选项告知服务器收集此信息,否则将无条件返回 -1。(7.5 版本新增)

  • TOTAL_TIME 传入 double 指针,用于接收上一次传输的总时间(秒),包括域名解析、TCP 连接等。

  • NAMELOOKUP_TIME 传入 double 指针,用于接收从开始到域名解析完成所花费的时间(秒)。

  • CONNECT_TIME 传入 double 指针,用于接收从开始到远程主机(或代理)连接完成所花费的时间(秒)。

  • APPCONNECT_TIME 传入 double 指针,用于接收从开始到远程主机的 SSL/SSH 连接/握手完成所花费的时间(秒)。此时间通常与 PRETRANSFER_TIME 非常接近,除非是 HTTP 流水线等情况,其中预传输时间可能因流水线等待而延迟。(7.19.0 版本新增)

  • PRETRANSFER_TIME 传入 double 指针,用于接收从开始到文件传输即将开始所花费的时间(秒)。包括特定协议的所有预传输命令和协商,但不包括触发传输的协议特定请求的发送。

  • STARTTRANSFER_TIME 传入 double 指针,用于接收从开始到 libcurl 接收到第一个字节所花费的时间(秒)。包括 CURLINFO_PRETRANSFER_TIME 以及服务器计算结果所需的时间。

  • REDIRECT_TIME 传入 double 指针,用于接收所有重定向步骤的总时间(秒),包括域名解析、连接、预传输和传输,直到最终事务开始。(7.9.7 版本新增)

  • REDIRECT_COUNT 传入 long 指针,用于接收实际跟随的重定向总数。(7.9.7 版本新增)

  • REDIRECT_URL 传入 char 指针的指针,用于接收启用 CURLOPT_FOLLOWLOCATION(3) 时将重定向到的 URL。如果您认为内置的 libcurl 重定向逻辑不够好,但仍希望避免实现计算新 URL 的所有逻辑,这会非常有用。(7.18.2 版本新增)

  • SIZE_UPLOAD 传入 double 指针,用于接收上传的总字节数。

  • SIZE_DOWNLOAD 传入 double 指针,用于接收下载的总字节数。此值仅针对最新传输,每次新传输时会重置。仅计算实际负载数据(通常称为正文),不包括元数据和标头。

  • SPEED_DOWNLOAD 传入 double 指针,用于接收 curl 测量的完整下载的平均下载速度(字节/秒)。

  • SPEED_UPLOAD 传入 double 指针,用于接收 curl 测量的完整上传的平均上传速度(字节/秒)。

  • HEADER_SIZE 传入 long 指针,用于接收所有收到的标头的总大小(字节)。

  • REQUEST_SIZE 传入 long 指针,用于接收发出的请求的总大小。目前仅适用于 HTTP 请求。注意,如果 FOLLOWLOCATION 为 true,则可能包含多个请求。

  • SSL_VERIFYRESULT 传入 long 指针,用于接收请求的证书验证结果(通过 curl_easy_setopt(3) 的 CURLOPT_SSL_VERIFYPEER(3) 选项设置)。

  • SSL_ENGINES 传入 'struct curl_slist *' 的地址,用于接收支持的 OpenSSL 加密引擎的链表。注意,引擎通常以单独的动态库实现,因此并非所有返回的引擎在运行时都可用。注意:使用完毕后必须调用 curl_slist_free_all(3) 释放链表指针,libcurl 不会自动释放数据。(7.12.3 版本新增)

  • CONTENT_LENGTH_DOWNLOAD 传入 double 指针,用于接收下载的内容长度(从 Content-Length 字段读取的值)。自 7.19.4 起,如果大小未知则返回 -1。

  • CONTENT_LENGTH_UPLOAD 传入 double 指针,用于接收指定的上传大小。自 7.19.4 起,如果大小未知则返回 -1。

  • CONTENT_TYPE 传入 char 指针的指针,用于接收下载对象的 Content-Type(从 Content-Type 字段读取的值)。如果返回 NULL,表示服务器未发送有效的 Content-Type 标头或协议不支持此功能。

  • HTTPAUTH_AVAIL 传入 long 指针,用于接收表示可用身份验证方法的位掩码。位的含义详见 curl_easy_setopt(3) 的 CURLOPT_HTTPAUTH(3) 选项。(7.10.8 版本新增)

  • PROXYAUTH_AVAIL 传入 long 指针,用于接收表示代理可用身份验证方法的位掩码。(7.10.8 版本新增)

  • NUM_CONNECTS 传入 long 指针,用于接收 libcurl 为实现上一次传输而创建的新连接数(仅计算成功的连接)。结合 CURLINFO_REDIRECT_COUNT,可以了解 libcurl 成功复用现有连接的次数。参见 curl_easy_setopt(3) 的连接选项以了解 libcurl 如何尝试保持持久连接以节省时间。(7.12.3 版本新增)

  • PRIMARY_IP 传入 char 指针的指针,用于接收指向最近一次连接的目标 IP 地址的零终止字符串(支持 IPv6)。注意,此指针指向的内存区域会在下次请求时重用,因此如需保留信息必须复制字符串。(7.19.0 版本新增)

  • PRIMARY_PORT 传入 long 指针,用于接收最近一次连接的目标端口。(7.21.0 版本新增)

  • LOCAL_IP 传入 char 指针的指针,用于接收指向最近一次连接的本地(源)IP 地址的零终止字符串(支持 IPv6)。限制与 CURLINFO_PRIMARY_IP 相同。(7.21.0 版本新增)

  • LOCAL_PORT 传入 long 指针,用于接收最近一次连接的本地(源)端口。(7.21.0 版本新增)

  • COOKIELIST 传入 'struct curl_slist *' 指针,用于接收 libcurl 已知的所有 cookie(包括过期的)链表。使用后必须调用 curl_slist_free_all(3) 释放链表。如果没有 cookie(未启用或未收到),则 'struct curl_slist *' 将设置为 NULL。(7.14.1 版本新增)

  • CONDITION_UNMET 传入 long 指针,如果上一个请求的条件不匹配(参见 CURLOPT_TIMECONDITION(3)),则接收数字 1。如果返回 1,表示未获取数据的原因是条件未满足。如果条件满足,则存储 0。(7.19.4 版本新增)

Type:
  • Number