转贴者按:

今天在使用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的错误代码的更多相关文章

  1. libcurl在windows下的使用

    curl在linux下很好用,但到了windows下写程序却没办法使用了,这时候可以使用libcurl库 libcurl库的编译网上很多,我就不一一赘述了,curl的官方网站:https://curl ...

  2. 关于微信支付接口,curl错误代码58

    微信支付接口,curl错误代码58 之前的微信付款到用户零钱都是好好的,今天运营来找我, 我想了了下,就是进行了网站搬家 看了下 微信支付相关的证书配置文件 知道了,在这个 要改下证书的路径 WxPa ...

  3. 微信支付接口,curl错误代码58

    微信支付接口,curl错误代码58 之前的微信付款到用户零钱都是好好的,今天运营来找我, 我想了了下,就是进行了网站搬家 看了下 微信支付相关的证书配置文件 知道了,在这个 要改下证书的路径 WxPa ...

  4. CURL错误代码及含义

    https://curl.haxx.se/libcurl/c/libcurl-errors.html NAME libcurl-errors - error codes in libcurl DESC ...

  5. 【curl】【php】curl报错,错误代码77,CURLE_SSL_CACERT_BADFILE (77)解决方法

    CURLE_SSL_CACERT_BADFILE (77) - 读取 SSL CA 证书时遇到问题(可能是路径错误或访问权限问题) 在微信接口相关开发时容易出现此问题 这一般是因为服务更新了相关的软件 ...

  6. PHP curl报错“Problem (2) in the Chunked-Encoded data”解决方案

    $s = curl_init(); curl_setopt($s, CURLOPT_POST, true); curl_setopt($s, CURLOPT_POSTFIELDS, $queryStr ...

  7. curl返回常见错误码

    转自:http://blog.csdn.net/cwj649956781/article/details/8086337 CURLE_OK() 所有罚款.继续像往常一样. CURLE_UNSUPPOR ...

  8. 学了C语言,如何利用CURL写一个下载程序?—用nmake编译CURL并安装

    在这一系列的前一篇文章学了C语言,如何为下载狂人写一个磁盘剩余容量监控程序?中,我们为下载狂人写了一个程序来监视磁盘的剩余容量,防止下载的东西撑爆了硬盘.可是,这两天,他又抱怨他的下载程序不好用,让我 ...

  9. CURL: CURLE_COULDNT_CONNECT问题探究

    摘自::  存储系统研究: socket connect error 99(Cannot assign request address) 这是最近使用libcurl写http服务的压力测试的时候遇到的 ...

随机推荐

  1. Java并发编程(九)并发容器

    并发容器的简单介绍: ConcurrentHashMap代替同步的Map(Collections.synchronized(new HashMap())),众所周知,HashMap是根据散列值分段存储 ...

  2. Azure 标准与高级托管磁盘存储的相互转换

    托管磁盘提供两种存储选项:高级(基于 SSD)和标准(基于 HDD). 它允许基于性能需求在这两个选项之间轻松切换,并保障最短停机时间. 非托管磁盘不具备此功能. 但可以轻松转换为托管磁盘,以便在这两 ...

  3. 根据id来大量删除数据between

    id的范围来删除数据 比如要删除 110到220的id信息:delete id from 表名 where id between 110 and 220;

  4. Visual Stuido插件大全

    JS Enhancements 使用JS能像C#代码一样折叠成块 Code Compare Code Compare is a powerful file and folder comparison ...

  5. Cache 和 Buffer 都是缓存,主要区别是什么?【转】

    作者:Towser 链接:https://www.zhihu.com/question/26190832/answer/32387918 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  6. windows7系统最大支持多少内存

      目前Windows 7 64位版仅能使用最大为192GB内存. 这是各个版本的具体数据:64位的Windows  7家庭普通版最高可支持8GB内存,家庭高级版最高可支持16GB内存,64位的Win ...

  7. February 6th, 2018 Week 6th Tuesday

    To be is to be perceived. 存在即被感知. How to interpret this quote? Maybe it means that everything in you ...

  8. Alpha冲刺! Day1 - 磨刀

    Alpha冲刺! Day1 - 磨刀 序章 Alpha冲刺开始的比印象中的计划早,翻回去看系统设计那篇作业博客的实践时间安排表格发现不!见!了!! 因为计划提前,但又必须在编码开始之前把所有逻辑讨论清 ...

  9. Alpha冲刺! Day9 - 砍柴

    Alpha冲刺! Day9 - 砍柴 今日已完成 晨瑶:继续补充gitkraken教程. 昭锡:实现主页基本布局. 永盛:进一步了解了框架,为框架生成的模型填充了假数据到数据库. 立强:文章模块基本实 ...

  10. 17秋 软件工程 Alpha展示博客

    成员简介 姓名 个人简介 博客地址 郑世强 郑世强,计算机三班,了解java web端和Android端编程,使用过Spring MVC和Spring Boot开发商业程序,Android端学习了rx ...