[转]curl的错误代码
转贴者按:
今天在使用curl的时候碰到了一个错误,如下所示: External Program Failed: D:\Tools\curl\curl.exe (return code was 18)
也就是错误码为18,网上查了一遍说是:文件传输,短于或大于预期。发生这种情况时,服务器首先报告预期的传输大小,然后提供数据不匹配前面给出的大小。
当时以为压缩包的过程中出问题了,但是采用其他的还的压缩包尝试过一遍,也还是一样,就否定了这种假设.
接着,将curl放到其他微服务的库中使用,却没问题,这样可以确定,问题不出在压缩包和curl的身上.
最后,找出原因,是服务器目前的上传权限没有开放,无法上传文件到服务器上去.
记录的原因是,虽然错误码为18,但在实际情况下面所代表的真实含义还是有所区别,下面转一下所有的curl错误码及其含义.
以下是转贴原文:
CURLE_OK(0) 正常情况。
CURLE_UNSUPPORTED_PROTOCOL(1) 你的URL传递给libcurl的使用协议,这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) 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) FTP服务器返回一个227行作为一个PASV命令的响应。如果libcurl的无法解析该行,此返回代码被传递回。
CURLE_FTP_CANT_GET_HOST(15) 内部故障查找主机使用新的连接。
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的使用。SeeCURLOPT_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) 接口错误。指定的出接口不能使用。设置接口使用传出连接的源IP地址与CURLOPT_INTERFACE。
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 URL。
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) 远程服务器拒绝卷曲登录(加入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是没有准备好发送/接收等待,直到它准备好了,然后再试一次。此返回代码仅返回从 curl_easy_recv(3) 和 (3) (加入7.18.2 curl_easy_send),
CURLE_SSL_CRL_BADFILE(82) 无法加载CRL文件(在7.19.0版加入)
CURLE_SSL_ISSUER_ERROR(83) 发行人检查失败(在7.19.0版加入)
CURLE_FTP_PRET_FAILED(84) FTP服务器不理解的PRET命令,所有不支持给定的参数。要小心时usingCURLOPT_CUSTOMREQUEST,自定义列表“命令将发送PRET CMD前PASV以及。(添加在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_OBSOLETE * 这些错误代码永远不会返回。它们被用来在一个老的libcurl版本,当前未使用。
其他的链接 :
http://blog.csdn.net/sandro_zhang/article/details/6837488
http://www.cnblogs.com/meteoric_cry/p/3994893.html
https://curl.haxx.se/libcurl/c/libcurl-errors.html
[转]curl的错误代码的更多相关文章
- libcurl在windows下的使用
curl在linux下很好用,但到了windows下写程序却没办法使用了,这时候可以使用libcurl库 libcurl库的编译网上很多,我就不一一赘述了,curl的官方网站:https://curl ...
- 关于微信支付接口,curl错误代码58
微信支付接口,curl错误代码58 之前的微信付款到用户零钱都是好好的,今天运营来找我, 我想了了下,就是进行了网站搬家 看了下 微信支付相关的证书配置文件 知道了,在这个 要改下证书的路径 WxPa ...
- 微信支付接口,curl错误代码58
微信支付接口,curl错误代码58 之前的微信付款到用户零钱都是好好的,今天运营来找我, 我想了了下,就是进行了网站搬家 看了下 微信支付相关的证书配置文件 知道了,在这个 要改下证书的路径 WxPa ...
- CURL错误代码及含义
https://curl.haxx.se/libcurl/c/libcurl-errors.html NAME libcurl-errors - error codes in libcurl DESC ...
- 【curl】【php】curl报错,错误代码77,CURLE_SSL_CACERT_BADFILE (77)解决方法
CURLE_SSL_CACERT_BADFILE (77) - 读取 SSL CA 证书时遇到问题(可能是路径错误或访问权限问题) 在微信接口相关开发时容易出现此问题 这一般是因为服务更新了相关的软件 ...
- PHP curl报错“Problem (2) in the Chunked-Encoded data”解决方案
$s = curl_init(); curl_setopt($s, CURLOPT_POST, true); curl_setopt($s, CURLOPT_POSTFIELDS, $queryStr ...
- curl返回常见错误码
转自:http://blog.csdn.net/cwj649956781/article/details/8086337 CURLE_OK() 所有罚款.继续像往常一样. CURLE_UNSUPPOR ...
- 学了C语言,如何利用CURL写一个下载程序?—用nmake编译CURL并安装
在这一系列的前一篇文章学了C语言,如何为下载狂人写一个磁盘剩余容量监控程序?中,我们为下载狂人写了一个程序来监视磁盘的剩余容量,防止下载的东西撑爆了硬盘.可是,这两天,他又抱怨他的下载程序不好用,让我 ...
- CURL: CURLE_COULDNT_CONNECT问题探究
摘自:: 存储系统研究: socket connect error 99(Cannot assign request address) 这是最近使用libcurl写http服务的压力测试的时候遇到的 ...
随机推荐
- linux之sort和uniq
uniq uniq命令: uniq不加参数,只对相邻的相同行内容去重. 例子如下: [root@localhost ~]# pwd /root [root@localhost ~]# cat oldb ...
- Puppet的搭建和应用
Puppet的部署与应用 1. 案例概述 作为一名系统管理员,维护服务器正常运行是最基本的职责,在管理几台到几十台服务器时,大部分管理员喜欢自己写小工具来维护,但随着服务器的数量曾多,任务量也逐渐增多 ...
- const修饰指针的三种效果
当用const进行修饰时,根据const位置的不同有三种不同效果. 判断的标准是:const修饰谁,谁的内容就是不可变的. 1 const int *p = &a; const修饰*p, *p ...
- mysql的高级特性-存储过程
定义: 存储例程是存储在数据库服务器中的一组sql语句,通过在查询中调用一个指定的名称来执行这些sql语句命令. 语法: DELIMITER // 声明语句结束符,用于区分; CEATE PROCED ...
- mysqlreport工具
进行MySQL的配置优化,首先必须找出MySQL的性能瓶颈所在:而SHOW STATUS输出的报告正是用来计算性能瓶颈的参考数据.mysqlreport不像SHOW STATUS那样简单的罗列数据,而 ...
- 使用 Array2XML把数组转成XML格式,有相同的节点
最近开发一个项目,需要调用第三方的接口,第三方提供的数据是xml,我直接使用Array2XML把php数组转成XML格式. XML格式如: <root> <body> < ...
- 反射的作用—>实现框架的功能
框架与框架要解决的核心问题 我们做房子卖给用户住,用于用户自己安装门窗和空调,我做的房子就是框架,用户需要使用我的框架,把门窗插入进我提供的框架中.框架与工具类有区别,工具类被用户的类调用,而框架则是 ...
- Linux初学 - Centos7忘记root密码的解决办法
开机进入启动界面后,要按照屏幕的下方的操作提示迅速按下“e”键. 按下“e”键后即来到启动文件界面,这时按键盘上面的方向键“下”,一直到文件底部,在"LANG=zh_cn.UTF-8&quo ...
- 请教MAC OS下PHP的mcrypt怎么安装
安装方法一: 通过Homebrew安装mcrypt,安装成功 [Shell] 纯文本查看 复制代码 brew install mcrypt MCrypt是一个功能强大的加密算法扩展库,它包括有22种算 ...
- BSOJ 2423 -- 【PA2014】Final Zarowki
Description 有n个房间和n盏灯,你需要在每个房间里放入一盏灯.每盏灯都有一定功率,每间房间都需要不少于一定功率的灯泡才可以完全照亮. 你可以去附近的商店换新灯泡,商店里所有正整数功率的灯 ...