11/08/2024 16:35:55
解决方案
MSDK 的网络库使用 libcurl 解决方案。在 SDK 返回的错误码中,如果 retcode 为 4 表示网络错误,需要根据 thirdcode 来判断网络错误的详细原因。以下是 CURL 的错误码。
错误码名称 | 对应错误码和解释 |
---|---|
CURLE_OK | 0 |
CURLE_UNSUPPORTED_PROTOCOL | 1 |
CURLE_FAILED_INIT | 2 |
CURLE_URL_MALFORMAT | 3 |
CURLE_NOT_BUILT_IN | 4 - [was obsoleted in August 2007 for 7.17.0, reused in April 2011 for 7.21.5] |
CURLE_COULDNT_RESOLVE_PROXY | 5 |
CURLE_COULDNT_RESOLVE_HOST | 6 |
CURLE_COULDNT_CONNECT | 7 |
CURLE_WEIRD_SERVER_REPLY | 8 |
CURLE_REMOTE_ACCESS_DENIED | 9 a service was denied by the server due to lack of access - when login fails this is not returned. |
CURLE_FTP_ACCEPT_FAILED | 10 - [was obsoleted in April 2006 for 7.15.4, reused in Dec 2011 for 7.24.0] |
CURLE_FTP_WEIRD_PASS_REPLY | 11 |
CURLE_FTP_ACCEPT_TIMEOUT | 12 - timeout occurred accepting server [was obsoleted in August 2007 for 7.17.0, reused in Dec 2011 for 7.24.0] |
CURLE_FTP_WEIRD_PASV_REPLY | 13 |
CURLE_FTP_WEIRD_227_FORMAT | 14 |
CURLE_FTP_CANT_GET_HOST | 15 |
CURLE_HTTP2 | 16 - A problem in the http2 framing layer. [was obsoleted in August 2007 for 7.17.0, reused in July 2014 for 7.38.0] |
CURLE_FTP_COULDNT_SET_TYPE | 17 |
CURLE_PARTIAL_FILE | 18 |
CURLE_FTP_COULDNT_RETR_FILE | 19 |
CURLE_OBSOLETE20 | 20 - NOT USED |
CURLE_QUOTE_ERROR | 21 - quote command failure |
CURLE_HTTP_RETURNED_ERROR | 22 |
CURLE_WRITE_ERROR | 23 |
CURLE_OBSOLETE24 | 24 - NOT USED |
CURLE_UPLOAD_FAILED | 25 - failed upload "command" |
CURLE_READ_ERROR | 26 - couldn't open/read from file |
CURLE_OUT_OF_MEMORY | 27 - CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error instead of a memory allocation error if CURL_DOES_CONVERSIONS is defined |
CURLE_OPERATION_TIMEDOUT | 28 - the timeout time was reached |
CURLE_OBSOLETE29 | 29 - NOT USED |
CURLE_FTP_PORT_FAILED | 30 - FTP PORT operation failed |
CURLE_FTP_COULDNT_USE_REST | 31 - the REST command failed |
CURLE_OBSOLETE32 | 32 - NOT USED |
CURLE_RANGE_ERROR | 33 - RANGE "command" didn't work |
CURLE_HTTP_POST_ERROR | 34 |
CURLE_SSL_CONNECT_ERROR | 35 - wrong when connecting with SSL |
CURLE_BAD_DOWNLOAD_RESUME | 36 - couldn't resume download |
CURLE_FILE_COULDNT_READ_FILE | 37 |
CURLE_LDAP_CANNOT_BIND | 38 |
CURLE_LDAP_SEARCH_FAILED | 39 |
CURLE_OBSOLETE40 | 40 - NOT USED |
CURLE_FUNCTION_NOT_FOUND | 41 - NOT USED starting with 7.53.0 |
CURLE_ABORTED_BY_CALLBACK | 42 |
CURLE_BAD_FUNCTION_ARGUMENT | 43 |
44 - NOT USED | |
CURLE_INTERFACE_FAILED | 45 - CURLOPT_INTERFACE failed |
CURLE_OBSOLETE46 | 46 - NOT USED |
CURLE_TOO_MANY_REDIRECTS | 47 - catch endless re-direct loops |
CURLE_UNKNOWN_OPTION | 48 - User specified an unknown option |
CURLE_TELNET_OPTION_SYNTAX | 49 - Malformed telnet option |
CURLE_OBSOLETE50 | 50 - NOT USED |
CURLE_PEER_FAILED_VERIFICATION | 51 - peer's certificate or fingerprint wasn't verified fine |
CURLE_GOT_NOTHING | 52 - when this is a specific error |
CURLE_SSL_ENGINE_NOTFOUND | 53 - SSL crypto engine not found |
CURLE_SSL_ENGINE_SETFAILED | 54 - can not set SSL crypto engine as default |
CURLE_SEND_ERROR | 55 - failed sending network data |
CURLE_RECV_ERROR | 56 - failure in receiving network data |
CURLE_OBSOLETE57 | 57 - NOT IN USE |
CURLE_SSL_CERTPROBLEM | 58 - problem with the local certificate |
CURLE_SSL_CIPHER | 59 - couldn't use specified cipher |
CURLE_SSL_CACERT | 60 - problem with the CA cert (path?) |
CURLE_BAD_CONTENT_ENCODING | 61 - Unrecognized/bad encoding |
CURLE_LDAP_INVALID_URL | 62 - Invalid LDAP URL |
CURLE_FILESIZE_EXCEEDED | 63 - Maximum file size exceeded |
CURLE_USE_SSL_FAILED | 64 - Requested FTP SSL level failed |
CURLE_SEND_FAIL_REWIND | 65 - Sending the data requires a rewind that failed |
CURLE_SSL_ENGINE_INITFAILED | 66 - failed to initialise ENGINE |
CURLE_LOGIN_DENIED | 67 - user, password or similar was not accepted and we failed to login |
CURLE_TFTP_NOTFOUND | 68 - file not found on server |
CURLE_TFTP_PERM | 69 - permission problem on server |
CURLE_REMOTE_DISK_FULL | 70 - out of disk space on server |
CURLE_TFTP_ILLEGAL | 71 - Illegal TFTP operation |
CURLE_TFTP_UNKNOWNID | 72 - Unknown transfer ID |
CURLE_REMOTE_FILE_EXISTS | 73 - File already exists |
CURLE_TFTP_NOSUCHUSER | 74 - No such user |
CURLE_CONV_FAILED | 75 - conversion failed |
CURLE_CONV_REQD | 76 - caller must register conversion callbacks using curl_easy_setopt options CURLOPT_CONV_FROM_NETWORK_FUNCTION, CURLOPT_CONV_TO_NETWORK_FUNCTION, and CURLOPT_CONV_FROM_UTF8_FUNCTION |
CURLE_SSL_CACERT_BADFILE | 77 - could not load CACERT file, missing or wrong format |
CURLE_REMOTE_FILE_NOT_FOUND | 78 - remote file not found |
CURLE_SSH | 79 - error from the SSH layer, somewhat generic so the error message will be of interest when this has happened |
CURLE_SSL_SHUTDOWN_FAILED | 80 - Failed to shut down the SSL connection |
CURLE_AGAIN | 81 - socket is not ready for send/recv, wait till it's ready and try again (Added in 7.18.2) |
CURLE_SSL_CRL_BADFILE | 82 - could not load CRL file, missing or wrong format (Added in 7.19.0) |
CURLE_SSL_ISSUER_ERROR | 83 - Issuer check failed. (Added in 7.19.0) |
CURLE_FTP_PRET_FAILED | 84 - a PRET command failed |
CURLE_RTSP_CSEQ_ERROR | 85 - mismatch of RTSP CSeq numbers |
CURLE_RTSP_SESSION_ERROR | 86 - mismatch of RTSP Session Ids |
CURLE_FTP_BAD_FILE_LIST | 87 - unable to parse FTP file list |
CURLE_CHUNK_FAILED | 88 - chunk callback reported error |
CURLE_NO_CONNECTION_AVAILABLE | 89 - No connection available, the session will be queued |
CURLE_SSL_PINNEDPUBKEYNOTMATCH | 90 - specified pinned public key did not match |
CURLE_SSL_INVALIDCERTSTATUS | 91 - invalid certificate status |
CURLE_HTTP2_STREAM | 92 - stream error in HTTP/2 framing layer |
CURLE_RECURSIVE_API_CALL | 93 - an api function was called from inside a callback |
CURL_LAST | never use! |
Copyright © 2024 MSDK.
All rights reserved.
All rights reserved.