[转]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服务的压力测试的时候遇到的 ...
随机推荐
- 《Inside C#》笔记(十三) 多线程 下
一 任务调度 当一个线程的时间片被用尽后,处理器会切换到另一个线程,但关于如何确定执行哪一个线程呢,这就涉及到了线程或任务的优先级. a) 每个线程都有优先级,任务调度算法会根据各线程的不同优先级来决 ...
- asp.net学习——Response对象
(2011-03-29 07:33:03) 转载▼ 标签: 杂谈 分类: asp.net学习 响应的缓冲输出:为了提高服务器的性能,asp.net向浏览器Write的时候默认并不会每Write一次都会 ...
- XP环境下C# 调用Pocess.start()时提示文件找不到的错误解决办法
错误提示如下: System.ComponentModel.Win32Exception (0x80004005): 系统找不到指定的文件. 在 System.Diagnostics.Process. ...
- @addTagHelper的使用
@addTagHelper用来在cshtml页面加入自定义的Tag @addTagHelper “[the full type name of taghelper,] the assembly nam ...
- SpringBoot整合Rabbitmq设置消息请求头
String str = "{\"origin\":\"BBC\",\"origin_coupon_id\":51,\" ...
- Linux下的进程类别(内核线程、轻量级进程和用户进程)--Linux进程的管理与调度(四)
本文中出现的,内核线程,轻量级进程,用户进程,用户线程等概念,如果不太熟悉, 可以参见 内核线程.轻量级进程.用户线程三种线程概念解惑(线程≠轻量级进程) Linux进程类别 虽然我们在区分Linux ...
- [JSON_01] JSON 解析
0. 说明 介绍 && 测试 JSON 1. 介绍 XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. JSON: ...
- Hive-1.2.1_03_DDL操作
Hive官方文档:Home-UserDocumentation Hive DDL官方文档:LanguageManual DDL 参考文章:Hive 用户指南 注意:各个语句的版本时间,有的是在 hiv ...
- IO流_演示键盘录入
读取一个键盘录入的数据,打印到控制台上 键盘本身就是一个标准的输入设备,对于java而言,对于这种输入设备都有相应的对象在System类中 import java.io.IOException; im ...
- Android UI开发神兵利器之Android Action Bar Style Generator
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/x359981514/article/details/26283129 ActionBar是3.0后的 ...