转贴者按:

今天在使用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. 《Inside C#》笔记(十三) 多线程 下

    一 任务调度 当一个线程的时间片被用尽后,处理器会切换到另一个线程,但关于如何确定执行哪一个线程呢,这就涉及到了线程或任务的优先级. a) 每个线程都有优先级,任务调度算法会根据各线程的不同优先级来决 ...

  2. asp.net学习——Response对象

    (2011-03-29 07:33:03) 转载▼ 标签: 杂谈 分类: asp.net学习 响应的缓冲输出:为了提高服务器的性能,asp.net向浏览器Write的时候默认并不会每Write一次都会 ...

  3. XP环境下C# 调用Pocess.start()时提示文件找不到的错误解决办法

    错误提示如下: System.ComponentModel.Win32Exception (0x80004005): 系统找不到指定的文件. 在 System.Diagnostics.Process. ...

  4. @addTagHelper的使用

    @addTagHelper用来在cshtml页面加入自定义的Tag @addTagHelper “[the full type name of taghelper,] the assembly nam ...

  5. SpringBoot整合Rabbitmq设置消息请求头

    String str = "{\"origin\":\"BBC\",\"origin_coupon_id\":51,\" ...

  6. Linux下的进程类别(内核线程、轻量级进程和用户进程)--Linux进程的管理与调度(四)

    本文中出现的,内核线程,轻量级进程,用户进程,用户线程等概念,如果不太熟悉, 可以参见 内核线程.轻量级进程.用户线程三种线程概念解惑(线程≠轻量级进程) Linux进程类别 虽然我们在区分Linux ...

  7. [JSON_01] JSON 解析

    0. 说明 介绍 && 测试 JSON 1. 介绍 XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. JSON: ...

  8. Hive-1.2.1_03_DDL操作

    Hive官方文档:Home-UserDocumentation Hive DDL官方文档:LanguageManual DDL 参考文章:Hive 用户指南 注意:各个语句的版本时间,有的是在 hiv ...

  9. IO流_演示键盘录入

    读取一个键盘录入的数据,打印到控制台上 键盘本身就是一个标准的输入设备,对于java而言,对于这种输入设备都有相应的对象在System类中 import java.io.IOException; im ...

  10. Android UI开发神兵利器之Android Action Bar Style Generator

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/x359981514/article/details/26283129 ActionBar是3.0后的 ...