10/27/2025 18:02:31
解决方案
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 © 2025 MSDK.
All rights reserved.
                                
                                All rights reserved.