curl_errno返回值获取错误信息

curl_errno返回值获取错误信息

2023年6月25日发(作者:)

curl_errno返回值获取错误信息在php程序编写中,使⽤curl函数库的⼏率还是挺⾼的,如curl_init()、curl_setopt()、curl_exec()、curl_errno()等都是常⽤的函数,尤其是在获取⽹页相关信息的时候。在使⽤这些函数的时候,有时会遇到⼀些问题,如之前遇到的IIS运⾏PHP出现Call to undefined function curl_init()的问题,这些问题⼀般都⽐较基础,遇到问题并解决问题,是⼀个程序员成长的历程,在解决问题的过程中能学会更多问题之外的知识。今天在使⽤curl_errno()时,新的问题⼜出现了。如下语句:if(!curl_errno($url)){... ...}程序运⾏时,{... ...}没有执⾏,说明if(!curl_errno($url))条件不为真。不过是仅仅知道了条件不为真这个结果,⽽不知道为什么不为真,哪⾥出的问题?所以,这个问题需要进⼀步诊断,那就是从curl_errno($url)的返回值获得错误的信息。如何从curl_errno返回值获取错误信息curl_errno($url)会返回⼀个数值,这个数值可能是0,也可能是其他。当这个数值为0时,则说明没有问题,相当于返回false,⽽⽤在条件语句⾥if(!curl_errno($url)){... ...},加了!后就变为true。所以当返回数值是0时就执⾏if后⾯的主体语句,返回其他数值时,不执⾏if后⾯的主体语句。因此,我们需要⼀个错误号和错误信息的对照表即可,根据错误号找出对应的错误信息。下⾯附上错误号及错误信息的对照资料CURLE_OK (0)All fine. Proceed as _UNSUPPORTED_PROTOCOL (1)The URL you passed to libcurl used a protocol that this libcurl does not support. The support might be a compile-time option that you didn'tuse, it can be a misspelled protocol string or just a protocol libcurl has no code _FAILED_INIT (2)Very early initialization code failed. This is likely to be an internal error or problem, or a resource problem where something fundamentalcouldn't get done at init _URL_MALFORMAT (3)The URL was not properly _NOT_BUILT_IN (4)A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision. This means that a feature or optionwas not enabled or explicitly disabled when libcurl was built and in order to get it to function you have to get a rebuilt _COULDNT_RESOLVE_PROXY (5)Couldn't resolve proxy. The given proxy host could not be _COULDNT_RESOLVE_HOST (6)Couldn't resolve host. The given remote host was not _COULDNT_CONNECT (7)Failed to connect() to host or _FTP_WEIRD_SERVER_REPLY (8)After connecting to a FTP server, libcurl expects to get a certain reply back. This error code implies that it got a strange or bad reply. Thegiven remote server is probably not an OK FTP _REMOTE_ACCESS_DENIED (9)We were denied access to the resource given in the URL. For FTP, this occurs while trying to change to the remote _FTP_ACCEPT_FAILED (10)While waiting for the server to connect back when an active FTP session is used, an error code was sent over the control connection _FTP_WEIRD_PASS_REPLY (11)After having sent the FTP password to the server, libcurl expects a proper reply. This error code indicates that an unexpected code _FTP_ACCEPT_TIMEOUT (12)During an active FTP session while waiting for the server to connect, the CURLOPT_ACCEPTTIMOUT_MS (or the internal default)timeout _FTP_WEIRD_PASV_REPLY (13)libcurl failed to get a sensible result back from the server as a response to either a PASV or a EPSV command. The server is _FTP_WEIRD_227_FORMAT (14)FTP servers return a 227-line as a response to a PASV command. If libcurl fails to parse that line, this return code is passed _FTP_CANT_GET_HOST (15)An internal failure to lookup the host used for the new _FTP_COULDNT_SET_TYPE (17)Received an error when trying to set the transfer mode to binary or _PARTIAL_FILE (18)A file transfer was shorter or larger than expected. This happens when the server first reports an expected transfer size, and then deliversdata that doesn't match the previously given _FTP_COULDNT_RETR_FILE (19)This was either a weird reply to a 'RETR' command or a zero byte transfer _QUOTE_ERROR (21)When sending custom "QUOTE" commands to the remote server, one of the commands returned an error code that was 400 or higher (forFTP) or otherwise indicated unsuccessful completion of the _HTTP_RETURNED_ERROR (22)This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= _WRITE_ERROR (23)An error occurred when writing received data to a local file, or an error was returned to libcurl from a write _UPLOAD_FAILED (25)Failed starting the upload. For FTP, the server typically denied the STOR command. The error buffer usually contains the server'sexplanation for _READ_ERROR (26)There was a problem reading a local file or an error returned by the read _OUT_OF_MEMORY (27)A memory allocation request failed. This is serious badness and things are severely screwed up if this ever _OPERATION_TIMEDOUT (28)Operation timeout. The specified time-out period was reached according to the _FTP_PORT_FAILED (30)The FTP PORT command returned error. This mostly happens when you haven't specified a good enough address for libcurl to use. SeeCURLOPT__FTP_COULDNT_USE_REST (31)The FTP REST command returned error. This should never happen if the server is _RANGE_ERROR (33)The server does not support or accept range _HTTP_POST_ERROR (34)This is an odd error that mainly occurs due to internal _SSL_CONNECT_ERROR (35)A problem occurred somewhere in the SSL/TLS handshake. You really want the error buffer and read the message there as it pinpoints theproblem slightly more. Could be certificates (file formats, paths, permissions), passwords, and _BAD_DOWNLOAD_RESUME (36)The download could not be resumed because the specified offset was out of the file _FILE_COULDNT_READ_FILE (37)A file given with FILE:// couldn't be opened. Most likely because the file path doesn't identify an existing file. Did you check filepermissions?CURLE_LDAP_CANNOT_BIND (38)LDAP cannot bind. LDAP bind operation _LDAP_SEARCH_FAILED (39)LDAP search _FUNCTION_NOT_FOUND (41)Function not found. A required zlib function was not _ABORTED_BY_CALLBACK (42)Aborted by callback. A callback returned "abort" to _BAD_FUNCTION_ARGUMENT (43)Internal error. A function was called with a bad _INTERFACE_FAILED (45)Interface error. A specified outgoing interface could not be used. Set which interface to use for outgoing connections' source IP addresswith CURLOPT__TOO_MANY_REDIRECTS (47)Too many redirects. When following redirects, libcurl hit the maximum amount. Set your limit with CURLOPT__UNKNOWN_OPTION (48)An option passed to libcurl is not recognized/known. Refer to the appropriate documentation. This is most likely a problem in the programthat uses libcurl. The error buffer might contain more specific information about which exact option it _TELNET_OPTION_SYNTAX (49)A telnet option string was Illegally _PEER_FAILED_VERIFICATION (51)The remote server's SSL certificate or SSH md5 fingerprint was deemed not _GOT_NOTHING (52)Nothing was returned from the server, and under the circumstances, getting nothing is considered an _SSL_ENGINE_NOTFOUND (53)The specified crypto engine wasn't _SSL_ENGINE_SETFAILED (54)Failed setting the selected SSL crypto engine as default!CURLE_SEND_ERROR (55)Failed sending network _RECV_ERROR (56)Failure with receiving network _SSL_CERTPROBLEM (58)problem with the local client _SSL_CIPHER (59)Couldn't use specified _SSL_CACERT (60)Peer certificate cannot be authenticated with known CA _BAD_CONTENT_ENCODING (61)Unrecognized transfer _LDAP_INVALID_URL (62)Invalid LDAP _FILESIZE_EXCEEDED (63)Maximum file size _USE_SSL_FAILED (64)Requested FTP SSL level _SEND_FAIL_REWIND (65)When doing a send operation curl had to rewind the data to retransmit, but the rewinding operation _SSL_ENGINE_INITFAILED (66)Initiating the SSL Engine _LOGIN_DENIED (67)The remote server denied curl to login (Added in 7.13.1)CURLE_TFTP_NOTFOUND (68)File not found on TFTP _TFTP_PERM (69)Permission problem on TFTP _REMOTE_DISK_FULL (70)Out of disk space on the _TFTP_ILLEGAL (71)Illegal TFTP _TFTP_UNKNOWNID (72)Unknown TFTP transfer _REMOTE_FILE_EXISTS (73)File already exists and will not be _TFTP_NOSUCHUSER (74)This error should never be returned by a properly functioning TFTP _CONV_FAILED (75)Character conversion _CONV_REQD (76)Caller must register conversion _SSL_CACERT_BADFILE (77)Problem with reading the SSL CA cert (path? access rights?)CURLE_REMOTE_FILE_NOT_FOUND (78)The resource referenced in the URL does not _SSH (79)An unspecified error occurred during the SSH _SSL_SHUTDOWN_FAILED (80)Failed to shut down the SSL _AGAIN (81)Socket is not ready for send/recv wait till it's ready and try again. This return code is only returned from curl_easy_recv(3) andcurl_easy_send(3) (Added in 7.18.2)CURLE_SSL_CRL_BADFILE (82)Failed to load CRL file (Added in 7.19.0)CURLE_SSL_ISSUER_ERROR (83)Issuer check failed (Added in 7.19.0)CURLE_FTP_PRET_FAILED (84)The FTP server does not understand the PRET command at all or does not support the given argument. Be careful when usingCURLOPT_CUSTOMREQUEST, a custom LIST command will be sent with PRET CMD before PASV as well. (Added in 7.20.0)CURLE_RTSP_CSEQ_ERROR (85)Mismatch of RTSP CSeq _RTSP_SESSION_ERROR (86)Mismatch of RTSP Session _FTP_BAD_FILE_LIST (87)Unable to parse FTP file list (during FTP wildcard downloading).CURLE_CHUNK_FAILED (88)Chunk callback reported error.就本⼈遇到的问题,curl_errno()返回值是6,通过上述资料查询,得知原因是Couldn't resolve host. The given remote host was notresolved.即是“解析主机失败”的原因.⾄此,我们就可以定位到问题出在哪⾥。在此提供 code 对应的 信息。⽅便⽇后查询

发布者:admin,转转请注明出处:http://www.yc00.com/web/1687679359a30934.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信