libcurl简介
libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。, libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。
错误码定义
CURLE_OK(0) //成功
CURLE_UNSUPPORTED_PROTOCOL(1)/* 你的URL传递给libcurl的使用协议,这libcurl的不支持。支持可能是你没有使用一个编译时的选项,它可以是一个拼写错的协议字符串,或者只是一个协议的libcurl没有代码。*/
CURLE_FAILED_INIT(2)/* 非常早期的初始化代码失败。这可能是内部错误或问题,资源问题,一些基本的东西可能无法完成初始化时间。 */
CURLE_URL_MALFORMAT(3)/* 该网址的格式不正确。 */
CURLE_NOT_BUILT_IN(4) /* 某些选项未被配置,可能需要重新编译。 */
CURLE_COULDNT_RESOLVE_PROXY(5) /* 无法解析代理服务器。代理主机无法得到解决。 */
CURLE_COULDNT_RESOLVE_HOST(6)/* 无法解析主机。给定的远程主机没有得到解决。 */
CURLE_COULDNT_CONNECT(7) /* connect()的主机或代理失败。 */
CURLE_FTP_WEIRD_SERVER_REPLY(8) /* 连接到一个FTP服务器后,libcurl的预期得到一定的回复返回。这个错误代码表示,它有一个奇怪的或坏的答复。指定的远程服务器可能不是一个确定的FTP服务器。 */
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_ACCEPTTIMOUT_MS(或内部默认),超时过期。 */
CURLE_FTP_WEIRD_PASV_REPLY(13)/* libcurl无法解析一个非正常的PASV或EPSV返回,服务器可能不正常。 */
CURLE_FTP_WEIRD_227_FORMAT(14)/* libcurl无法解析服务器返回的非正常的PASV 227行响应。 */
CURLE_FTP_CANT_GET_HOST(15)/* 内部错误,无法连接到主机。 */
CURLE_FTP_COULDNT_SET_TYPE(17) /* 设置binary或ASCII模式时返回错误。 */
CURLE_PARTIAL_FILE(18) /* 文件传输,短于或大于预期。发生这种情况时,服务器首先报告预期的传输大小,然后提供数据不匹配前面给出的大小。 */
CURLE_FTP_COULDNT_RETR_FILE(19) /* RETR命令返回了一个非预期的回应,或一个0字节传送完成。 */
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的使用。SeeCURLOPT_FTPPORT。*/
CURLE_FTP_COULDNT_USE_REST(31)/* FTP REST命令返回错误。服务器正常的话这个错误应该永远不会发生。 */
CURLE_RANGE_ERROR(33) /* 不支持范围请求。貌似跟http的断点续传有关系 */
CURLE_HTTP_POST_ERROR(34) /* 这是一个主要由内部混乱引发的错误。*/
CURLE_SSL_CONNECT_ERROR(35) /* 出现问题的地方,在SSL / TLS握手。你真正想要的在错误缓冲区,阅读里面的信息,因为它稍稍指出了更多的问题所在。可能是证书(文件格式,路径,权限),密码,和其他人。 */
CURLE_BAD_DOWNLOAD_RESUME(36) /* 下载无法恢复,因为指定的偏移量超出文件的边界。 */
CURLE_FILE_COULDNT_READ_FILE(37) /* 文件无法打开。可能因为文件不存在或权限问题。 */
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设置接口。*/
CURLE_TOO_MANY_REDIRECTS(47) /* 过多的重定向。当追踪重定向时,触碰到libcurl的最大值。设置您的与CURLOPT_MAXREDIRS限制。 */
CURLE_UNKNOWN_OPTION(48) /* 未知选项。 */
CURLE_TELNET_OPTION_SYNTAX(49) /*T ELNET选项不符合格式。 */
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 URL。 */
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) /* 登录失败。远程服务器拒绝登录。(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证书有问题(路径?访问权限?) */
CURLE_REMOTE_FILE_NOT_FOUND(78) /* URL引用的资源不存在。 */
CURLE_SSH(79) /* 一个在SSH会话中发生的未指明的错误。 */
CURLE_SSL_SHUTDOWN_FAILED(80) /* 关闭SSL连接失败。 */
CURLE_AGAIN(81) /* socket未准备好,等socket准备好后重试。 */
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时需要小心。*/
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返回)没有可用连接,会话将会进入队列。 (added in 7.30.0) */
CURLE_SSL_PINNEDPUBKEYNOTMATCH (90) /* 匹配通过CURLOPT_PINNEDPUBLICKEY指定的密钥失败。 */
CURLE_SSL_INVALIDCERTSTATUS (91) /* 无效的证书状态。 */
CURLE_HTTP2_STREAM (92) /* HTTP2框架层stream错误。 */
CURLE_OBSOLETE* /* 永远不会被返回的错误,用于旧的libcurl版本。 */
参考链接:
https://blog.csdn.net/ljl890705/article/details/78806037
http://blog.csdn.net/cwj649956781/article/details/8086337