libcurl 错误码

这个文档是小编在curl官网上使用谷歌翻译翻译的,详细信息看官网

curl

描述

此手册页包含 libcurl 中的大部分(如果不是全部)可用的错误代码。还包括它们发生的原因以及您可以采取哪些措施来解决问题。

卷码

几乎所有“简单”的接口函数都返回一个 CURLcode 错误代码。当然使用curl_easy_setopt选项CURLOPT_ERRORBUFFER是一个不错的选择,因为它会提供人类可读的错误字符串,该字符串可能会提供有关错误原因的更多详细信息,而不仅仅是错误代码。可以调用 curl_easy_strerror以从给定的 CURLcode 编号中获取错误字符串。

CURLcode 是以下之一:

CURLE_OK (0)

一切都好。照常进行。

CURLE_UNSUPPORTED_PROTOCOL (1)

您传递给 libcurl 的 URL 使用了此 libcurl 不支持的协议。支持可能是您未使用的编译时选项,它可能是拼写错误的协议字符串或只是协议 libcurl 没有代码。

CURLE_FAILED_INIT (2)

早期初始化代码失败。这可能是内部错误或问题,或者是在初始化时无法完成基本操作的资源问题。

CURLE_URL_MALFORMAT (3)

URL 格式不正确。

CURLE_NOT_BUILT_IN (4)

由于构建时决定,在此 libcurl 中未找到内置的请求功能、协议或选项。这意味着在构建 libcurl 时未启用或明确禁用某个功能或选项,为了使其正常运行,您必须重新构建 libcurl。

CURLE_COULDNT_RESOLVE_PROXY (5)

无法解析代理。无法解析给定的代理主机。

CURLE_COULDNT_RESOLVE_HOST (6)

无法解析主机。给定的远程主机未解析。

CURLE_COULDNT_CONNECT (7)

无法连接()到主机或代理。

CURLE_WEIRD_SERVER_REPLY (8)

服务器发送的数据 libcurl 无法解析。此错误代码在 7.51.0 之前称为CURLE_FTP_WEIRD_SERVER_REPLY。

CURLE_REMOTE_ACCESS_DENIED (9)

我们被拒绝访问 URL 中提供的资源。对于 FTP,在尝试更改到远程目录时会发生这种情况。

CURLE_FTP_ACCEPT_FAILED (10)

在使用活动 FTP 会话时等待服务器重新连接时,通过控制连接或类似连接发送了错误代码。

CURLE_FTP_WEIRD_PASS_REPLY (11)

在将 FTP 密码发送到服务器后,libcurl 期望得到正确的回复。此错误代码表示返回了意外代码。

CURLE_FTP_ACCEPT_TIMEOUT (12)

在等待服务器连接的活动 FTP 会话期间,CURLOPT_ACCEPTTIMEOUT_MS(或内部默认值)超时已过期。

CURLE_FTP_WEIRD_PASV_REPLY (13)

作为对 PASV 或 EPSV 命令的响应,libcurl 未能从服务器返回合理的结果。服务器有缺陷。

CURLE_FTP_WEIRD_227_FORMAT (14)

FTP 服务器返回 227 行作为对 PASV 命令的响应。如果 libcurl 无法解析该行,则返回此返回码。

CURLE_FTP_CANT_GET_HOST (15)

查找用于新连接的主机的内部故障。

CURLE_HTTP2 (16)

在 HTTP2 框架层中检测到问题。这有点通用,可能是几个问题之一,有关详细信息,请参阅错误缓冲区。

CURLE_FTP_COULDNT_SET_TYPE (17)

尝试将传输模式设置为二进制或 ASCII 时收到错误。

CURLE_PARTIAL_FILE (18)

文件传输比预期短或大。当服务器首先报告预期的传输大小,然后交付与先前给定大小不匹配的数据时,就会发生这种情况。

CURLE_FTP_COULDNT_RETR_FILE (19)

这要么是对“RETR”命令的奇怪回复,要么是零字节传输完成。

CURLE_QUOTE_ERROR (21)

向远程服务器发送自定义“QUOTE”命令时,其中一个命令返回的错误代码为 400 或更高(对于 FTP)或以其他方式指示命令未成功完成。

CURLE_HTTP_RETURNED_ERROR (22)

如果CURLOPT_FAILONERROR设置为 TRUE 并且 HTTP 服务器返回 >= 400 的错误代码,则会返回此信息。

CURLE_WRITE_ERROR (23)

将接收到的数据写入本地文件时发生错误,或者从写入回调将错误返回给 libcurl。

CURLE_UPLOAD_FAILED (25)

开始上传失败。对于 FTP,服务器通常拒绝 STOR 命令。错误缓冲区通常包含服务器对此的解释。

CURLE_READ_ERROR (26)

读取本地文件时出现问题或读取回调返回错误。

CURLE_OUT_OF_MEMORY (27)

内存分配请求失败。这是严重的错误,如果发生这种情况,事情就会严重搞砸。

CURLE_OPERATION_TIMEDOUT (28)

操作超时。根据条件达到指定的超时期限。

CURLE_FTP_PORT_FAILED (30)

FTP PORT 命令返回错误。这通常发生在您没有为 libcurl 指定足够好的地址时。请参阅CURLOPT_FTPPORT

CURLE_FTP_COULDNT_USE_REST (31)

FTP REST 命令返回错误。如果服务器是健全的,这永远不会发生。

CURLE_RANGE_ERROR (33)

服务器不支持也不接受范围请求。

CURLE_HTTP_POST_ERROR (34)

这是一个奇怪的错误,主要是由于内部混乱而发生的。

CURLE_SSL_CONNECT_ERROR (35)

SSL/TLS 握手中某处出现问题。您真的需要错误缓冲区并在那里阅读消息,因为它可以稍微定位问题。可以是证书(文件格式、路径、权限)、密码等。

CURLE_BAD_DOWNLOAD_RESUME (36)

无法恢复下载,因为指定的偏移量超出了文件边界。

CURLE_FILE_COULDNT_READ_FILE (37)

无法打开使用 FILE:// 指定的文件。很可能是因为文件路径没有识别现有文件。你检查文件权限了吗?

CURLE_LDAP_CANNOT_BIND (38)

LDAP 无法绑定。LDAP 绑定操作失败。

CURLE_LDAP_SEARCH_FAILED (39)

LDAP 搜索失败。

CURLE_FUNCTION_NOT_FOUND (41)

未找到函数。未找到所需的 zlib 函数。

CURLE_ABORTED_BY_CALLBACK (42)

被回调中止。回调将“中止”返回给 libcurl。

CURLE_BAD_FUNCTION_ARGUMENT (43)

使用错误参数调用函数。

CURLE_INTERFACE_FAILED (45)

接口错误。无法使用指定的传出接口。使用CURLOPT_INTERFACE 设置用于传出连接的源 IP 地址的接口。

CURLE_TOO_MANY_REDIRECTS (47)

重定向太多。跟随重定向时,libcurl 达到最大数量。使用CURLOPT_MAXREDIRS设置您的限制。

CURLE_UNKNOWN_OPTION (48)

传递给 libcurl 的选项无法识别/未知。请参阅相应的文档。这很可能是使用 libcurl 的程序中的问题。错误缓冲区可能包含有关它所关注的确切选项的更具体信息。

CURLE_SETOPT_OPTION_SYNTAX (49)

传递给 setopt 的选项格式错误。有关什么选项的详细信息,请参阅错误消息。

CURLE_GOT_NOTHING (52)

服务器没有返回任何内容,在这种情况下,什么都没有被认为是错误。

CURLE_SSL_ENGINE_NOTFOUND (53)

未找到指定的加密引擎。

CURLE_SSL_ENGINE_SETFAILED (54)

未能将选定的 SSL 加密引擎设置为默认值。

CURLE_SEND_ERROR (55)

发送网络数据失败。

CURLE_RECV_ERROR (56)

接收网络数据失败。

CURLE_SSL_CERTPROBLEM (58)

本地客户端证书问题。

CURLE_SSL_CIPHER (59)

无法使用指定的密码。

CURLE_PEER_FAILED_VERIFICATION (60)

远程服务器的 SSL 证书或 SSH md5 指纹被认为不正确。自 7.62.0 起,此错误代码已与 CURLE_SSL_CACERT 统一。它之前的值为 51。

CURLE_BAD_CONTENT_ENCODING (61)

无法识别的传输编码。

CURLE_LDAP_INVALID_URL (62)

此错误代码自 7.82.0 起已弃用,无法再返回。

CURLE_FILESIZE_EXCEEDED (63)

超出最大文件大小。

CURLE_USE_SSL_FAILED (64)

请求的 FTP SSL 级别失败。

CURLE_SEND_FAIL_REWIND (65)

在进行发送操作时,curl 不得不回绕数据以重新传输,但回绕操作失败。

CURLE_SSL_ENGINE_INITFAILED (66)

启动 SSL 引擎失败。

CURLE_LOGIN_DENIED (67)

远程服务器拒绝 curl 登录(在 7.13.1 中添加)

CURLE_TFTP_NOTFOUND (68)

在 TFTP 服务器上找不到文件。

CURLE_TFTP_PERM (69)

TFTP 服务器上的权限问题。

CURLE_REMOTE_DISK_FULL (70)

服务器上的磁盘空间不足。

CURLE_TFTP_ILLEGAL (71)

非法 TFTP 操作。

CURLE_TFTP_UNKNOWNID (72)

未知的 TFTP 传输 ID。

CURLE_REMOTE_FILE_EXISTS (73)

文件已经存在,不会被覆盖。

CURLE_TFTP_NOSUCHUSER (74)

正常运行的 TFTP 服务器绝不应返回此错误。

CURLE_CONV_FAILED (75)

字符转换失败。

CURLE_CONV_REQD (76)

调用者必须注册转换回调。

CURLE_SSL_CACERT_BADFILE (77)

读取 SSL CA 证书时出现问题(路径?访问权限?)

CURLE_REMOTE_FILE_NOT_FOUND (78)

URL 中引用的资源不存在。

CURLE_SSH (79)

SSH 会话期间发生未指定的错误。

CURLE_SSL_SHUTDOWN_FAILED (80)

未能关闭 SSL 连接。

CURLE_AGAIN (81)

套接字尚未准备好发送/接收,等待它准备好再试一次。此返回码仅从curl_easy_recvcurl_easy_send返回(在 7.18.2 中添加)

CURLE_SSL_CRL_BADFILE (82)

加载 CRL 文件失败(7.19.0 新增)

CURLE_SSL_ISSUER_ERROR (83)

颁发者检查失败(7.19.0 中添加)

CURLE_FTP_PRET_FAILED (84)

FTP 服务器根本不理解 PRET 命令或不支持给定的参数。使用CURLOPT_CUSTOMREQUEST时要小心,自定义 LIST 命令也会在 PASV 之前使用 PRET CMD 发送。(在 7.20.0 中添加)

CURLE_RTSP_CSEQ_ERROR (85)

RTSP CSeq 编号不匹配。

CURLE_RTSP_SESSION_ERROR (86)

RTSP 会话标识符不匹配。

CURLE_FTP_BAD_FILE_LIST (87)

无法解析 FTP 文件列表(在 FTP 通配符下载期间)。

CURLE_CHUNK_FAILED (88)

块回调报告错误。

CURLE_NO_CONNECTION_AVAILABLE (89)

(仅供内部使用,libcurl 永远不会返回)没有可用的连接,会话将被排队。(在 7.30.0 中添加)

CURLE_SSL_PINNEDPUBKEYNOTMATCH(90)

无法匹配使用CURLOPT_PINNEDPUBLICKEY指定的固定密钥。

CURLE_SSL_INVALIDCERTSTATUS (91)

使用CURLOPT_SSL_VERIFYSTATUS询问状态时返回失败。

CURLE_HTTP2_STREAM (92)

HTTP/2 成帧层中的流错误。

CURLE_RECURSIVE_API_CALL (93)

从回调内部调用了 API 函数。

CURLE_AUTH_ERROR (94)

身份验证函数返回错误。

CURLE_HTTP3 (95)

在 HTTP/3 层中检测到问题。这有点通用,可能是几个问题之一,有关详细信息,请参阅错误缓冲区。

CURLE_QUIC_CONNECT_ERROR (96)

QUIC 连接错误。此错误可能是由 SSL 库错误引起的。QUIC 是用于 HTTP/3 传输的协议。

CURLE_SSL_CLIENTCERT (98)

需要 SSL 客户端证书。

CURLE_UNRECOVERABLE_POLL (99)

对 poll() 或 select() 的内部调用返回了不可恢复的错误。

CURLE_OBSOLETE *

永远不会返回这些错误代码。它们在旧的 libcurl 版本中使用,目前未使用。

卷码

这是 libcurl 多接口中的函数使用的通用返回码。还要考虑curl_multi_strerror

CURLM_CALL_MULTI_PERFORM (-1)

这并不是真正的错误。这意味着您应该再次调用curl_multi_perform而无需在两者之间执行 select() 或类似操作。在版本 7.20.0(2010 年 2 月 9 日发布)之前,这可以由curl_multi_perform返回,但在以后的版本中,从不使用此返回代码。

CURLM_CALL_MULTI_SOCKET (-1)

CURLM_CALL_MULTI_PERFORM 的别名。现代 libcurl 版本从未返回。

CURLM_OK (0)

事情很好。

CURLM_BAD_HANDLE (1)

传入的句柄不是有效的 CURLM 句柄。

CURLM_BAD_EASY_HANDLE (2)

简单的处理不好/无效。这可能意味着它根本不是一个简单的手柄,或者可能该手柄已经被这个或另一个多手柄使用。

CURLM_OUT_OF_MEMORY (3)

你注定要失败。

CURLM_INTERNAL_ERROR (4)

这只能在 libcurl 错误时返回。请向我们报告!

CURLM_BAD_SOCKET (5)

传入的套接字不是 libcurl 已经知道的有效套接字。(在 7.15.4 中添加)

CURLM_UNKNOWN_OPTION (6)

curl_multi_setopt() 带有不受支持的选项(在 7.15.4 中添加)

CURLM_ADDED_ALREADY (7)

尝试再次添加已添加到多句柄的简单句柄。(在 7.32.1 中添加)

CURLM_RECURSIVE_API_CALL (8)

从回调内部调用了 API 函数。

CURLM_WAKEUP_FAILURE (9)

唤醒不可用或失败。

CURLM_BAD_FUNCTION_ARGUMENT (10)

使用错误参数调用函数。

CURLM_ABORTED_BY_CALLBACK (11)

多句柄回调返回错误。

CURLM_UNRECOVERABLE_POLL (12)

对 poll() 或 select() 的内部调用返回了不可恢复的错误。

卷码

“share”接口将返回一个 CURLSHcode 以指示何时发生错误。还要考虑curl_share_strerror

CURLSHE_OK (0)

一切都好。照常进行。

CURLSHE_BAD_OPTION (1)

向函数传递了一个无效选项。

CURLSHE_IN_USE (2)

共享对象当前正在使用中。

CURLSHE_INVALID (3)

向函数传递了无效的共享对象。

CURLSHE_NOMEM (4)

没有足够的内存可用。(在 7.12.0 中添加)

CURLSHE_NOT_BUILT_IN (5)

无法完成请求的共享,因为您使用的图书馆没有启用该特定功能。(在 7.23.0 中添加)

曲码

URL 接口将返回一个 CURLUcode 以指示何时发生错误。还要考虑curl_url_strerror

CURLUE_BAD_HANDLE (1)

一个无效的 CURLU 指针作为参数传递。

CURLUE_BAD_PARTPOINTER (2)

一个无效的“部分”参数作为参数传递。

CURLUE_MALFORMED_INPUT (3)

向 URL API 函数传递了格式错误的输入。

CURLUE_BAD_PORT_NUMBER (4)

端口号不是 0 到 65535 之间的十进制数。

CURLUE_UNSUPPORTED_SCHEME (5)

此 libcurl 构建不支持给定的 URL 方案。

CURLUE_URLDECODE (6)

URL 解码错误,很可能是由于输入中的垃圾。

CURLUE_OUT_OF_MEMORY (7)

记忆功能失败。

CURLUE_USER_NOT_ALLOWED (8)

禁止时在 URL 中传递凭据。

CURLUE_UNKNOWN_PART (9)

未知部件 ID 已传递到 URL API 函数。

CURLUE_NO_SCHEME (10)

URL 中没有方案部分。

CURLUE_NO_USER (11)

URL 中没有用户部分。

CURLUE_NO_PASSWORD (12)

URL 中没有密码部分。

CURLUE_NO_OPTIONS (13)

URL 中没有选项部分。

CURLUE_NO_HOST (14)

URL 中没有主机部分。

CURLUE_NO_PORT (15)

URL 中没有端口部分。

CURLUE_NO_QUERY (16)

URL 中没有查询部分。

CURLUE_NO_FRAGMENT (17)

URL 中没有片段部分。

CURLUE_NO_ZONEID (18)

URL 中没有设置 zoneid。

CURLUE_BAD_FILE_URL (19)

file:// URL 无效。

CURLUE_BAD_FRAGMENT (20)

URL 的片段部分包含错误或无效字符。

CURLUE_BAD_HOSTNAME (21)

主机名包含错误或无效字符。

CURLUE_BAD_IPV6 (22)

IPv6 地址主机名包含错误或无效字符。

CURLUE_BAD_LOGIN (23)

URL 的登录部分包含错误或无效字符。

CURLUE_BAD_PASSWORD (24)

URL 的密码部分包含错误或无效字符。

CURLUE_BAD_PATH (25)

URL 的路径部分包含错误或无效字符。

CURLUE_BAD_QUERY (26)

URL 的查询部分包含错误或无效字符。

CURLUE_BAD_SCHEME (27)

URL 的方案部分包含错误或无效字符。

CURLUE_BAD_SLASHES (28)

URL 包含无效数量的斜杠。

CURLUE_BAD_USER (29)

URL 的用户部分包含错误或无效字符。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值