Curl请求错误时返回错误编码含义

来源:互联网 发布:pro tools 12mac版 编辑:程序博客网 时间:2024/06/06 03:16
原网站地址https://curl.haxx.se/libcurl/c/libcurl-errors.html

以下为翻译:
几乎所有“简单”的接口函数都会返回一个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)

该网址格式不正确。

CURLE_NOT_BUILT_IN(4)

由于构建时间的决定,在此libcurl中找不到内置的请求的功能,协议或选项。这意味着在构建libcurl时没有启用或显式禁用某个功能或选项,为了使其功能得到重建的libcurl。

CURLE_COULDNT_RESOLVE_PROXY(5)

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

CURLE_COULDNT_RESOLVE_HOST(6)

无法解析主机。给定的远程主机没有解决。

CURLE_COULDNT_CONNECT(7)

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

CURLE_FTP_WEIRD_SERVER_REPLY(8)

服务器发送的数据libcurl无法解析。此错误代码不仅用于FTP,而且自7.51.0起,将其别名为CURLE_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)

libcurl无法从服务器获得合理的结果作为对PASV或EPSV命令的响应。服务器有缺陷。

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_TELNET_OPTION_SYNTAX(49)

一个telnet选项字符串被非法格式化。

CURLE_PEER_FAILED_VERIFICATION(51)

远程服务器的SSL证书或SSH md5指纹被认为不正确。

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_SSL_CACERT(60)

对等证书不能用已知的CA证书进行认证。

CURLE_BAD_CONTENT_ENCODING(61)

无法识别的传输编码。

CURLE_LDAP_INVALID_URL(62)

无效的LDAP网址。

CURLE_FILESIZE_EXCEEDED(63)

超过最大文件大小。

CURLE_USE_SSL_FAILED(64)

请求的FTP SSL级别失败。

CURLE_SEND_FAIL_REWIND(65)

当执行发送操作时,卷曲必须倒回数据以重新传送,但倒带操作失败。

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传输标识。

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_recv和curl_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_OBSOLETE *

这些错误代码将永远不会被返回。他们被用于旧的libcurl版本,目前尚未使用。

阅读全文
0 0
原创粉丝点击