curl_easy_strerror 返回中文錯誤提示(curl中文錯誤碼)

// from: http://blog.csdn.net/realzhi/article/details/17068085
// regexp: ^(CURLE_[A-Z,0-9,_]*) \(\d+\) – (.*)$
//			case \1:\n\treturn "\2";\n

#pragma once

const char* curl_easy_strerror_cn(CURLcode code)
{
	switch (code)
	{
	case CURLE_UNSUPPORTED_PROTOCOL:
		return "您傳送給 libcurl 的網址使用了此 libcurl 不支持的協議。 可能是您沒有使用的編譯時選項造成了這種情況(可能是協議字符串拼寫有誤,或沒有指定協議 libcurl 代碼)。";

	case CURLE_FAILED_INIT:
		return "非常早期的初始化代碼失敗。 可能是內部錯誤或問題。";

	case CURLE_URL_MALFORMAT:
		return "網址格式不正確。";

	case CURLE_COULDNT_RESOLVE_PROXY:
		return "無法解析代理服務器。 指定的代理服務器主機無法解析。";

	case CURLE_COULDNT_RESOLVE_HOST:
		return "無法解析主機。 指定的遠程主機無法解析。";

	case CURLE_COULDNT_CONNECT:
		return "無法通過 connect() 連接至主機或代理服務器。";

	case CURLE_FTP_WEIRD_SERVER_REPLY:
		return "在連接到 FTP 服務器後,libcurl 需要收到特定的回覆。 此錯誤代碼表示收到了不正常或不正確的回覆。 指定的遠程服務器可能不是正確的 FTP 服務器。";

	case CURLE_REMOTE_ACCESS_DENIED:
		return "我們無法訪問網址中指定的資源。 對於 FTP,如果嘗試更改爲遠程目錄,就會發生這種情況。";

	case CURLE_FTP_WEIRD_PASS_REPLY:
		return "在將 FTP 密碼發送到服務器後,libcurl 需要收到正確的回覆。 此錯誤代碼表示返回的是意外的代碼。";

	case CURLE_FTP_WEIRD_PASV_REPLY:
		return "libcurl 無法從服務器端收到有用的結果,作爲對 PASV 或 EPSV 命令的響應。 服務器有問題。";

	case CURLE_FTP_WEIRD_227_FORMAT:
		return "FTP 服務器返回 227 行作爲對 PASV 命令的響應。 如果 libcurl 無法解析此行,就會返回此代碼。";

	case CURLE_FTP_CANT_GET_HOST:
		return "在查找用於新連接的主機時出現內部錯誤。";

	case CURLE_FTP_COULDNT_SET_TYPE:
		return "在嘗試將傳輸模式設置爲二進制或 ascii 時發生錯誤。";

	case CURLE_PARTIAL_FILE:
		return "文件傳輸尺寸小於或大於預期。 當服務器先報告了一個預期的傳輸尺寸,然後所傳送的數據與先前指定尺寸不相符時,就會發生此錯誤。";

	case CURLE_FTP_COULDNT_RETR_FILE:
		return "‘RETR’ 命令收到了不正常的回覆,或完成的傳輸尺寸爲零字節。";

	case CURLE_QUOTE_ERROR:
		return "在向遠程服務器發送自定義 “QUOTE” 命令時,其中一個命令返回的錯誤代碼爲 400 或更大的數字(對於 FTP),或以其他方式表明命令無法成功完成。";

	case CURLE_HTTP_RETURNED_ERROR:
		return "如果 CURLOPT_FAILONERROR 設置爲 TRUE,且 HTTP 服務器返回 >= 400 的錯誤代碼,就會返回此代碼。 (此錯誤代碼以前又稱爲 CURLE_HTTP_NOT_FOUND。)";

	case CURLE_WRITE_ERROR:
		return "在向本地文件寫入所收到的數據時發生錯誤,或由寫入回調 (write callback) 向 libcurl 返回了一個錯誤。";

	case CURLE_UPLOAD_FAILED:
		return "無法開始上傳。 對於 FTP,服務器通常會拒絕執行 STOR 命令。 錯誤緩衝區通常會提供服務器對此問題的說明。 (此錯誤代碼以前又稱爲 CURLE_FTP_COULDNT_STOR_FILE。)";

	case CURLE_READ_ERROR:
		return "讀取本地文件時遇到問題,或由讀取回調 (read callback) 返回了一個錯誤。";

	case CURLE_OUT_OF_MEMORY:
		return "內存分配請求失敗。 此錯誤比較嚴重,若發生此錯誤,則表明出現了非常嚴重的問題。";

	case CURLE_OPERATION_TIMEDOUT:
		return "操作超時。 已達到根據相應情況指定的超時時間。 請注意: 自 Urchin 6.6.0.2 開始,超時時間可以自行更改。 要指定遠程日誌下載超時,請打開 urchin.conf 文件,取消以下行的註釋標記:#DownloadTimeout: 30";

	case CURLE_FTP_PORT_FAILED:
		return "FTP PORT 命令返回錯誤。 在沒有爲 libcurl 指定適當的地址使用時,最有可能發生此問題。 請參閱 CURLOPT_FTPPORT。";

	case CURLE_FTP_COULDNT_USE_REST:
		return "FTP REST 命令返回錯誤。 如果服務器正常,則應當不會發生這種情況。";

	case CURLE_RANGE_ERROR:
		return "服務器不支持或不接受範圍請求。";

	case CURLE_HTTP_POST_ERROR:
		return "此問題比較少見,主要由內部混亂引發。";

	case CURLE_SSL_CONNECT_ERROR:
		return "同時使用 SSL/TLS 時可能會發生此錯誤。 您可以訪問錯誤緩衝區查看相應信息,其中會對此問題進行更詳細的介紹。 可能是證書(文件格式、路徑、許可)、密碼及其他因素導致了此問題。";

	case CURLE_FTP_BAD_DOWNLOAD_RESUME:
		return "嘗試恢復超過文件大小限制的 FTP 連接。";

	case CURLE_FILE_COULDNT_READ_FILE:
		return "無法打開 FILE:// 路徑下的文件。 原因很可能是文件路徑無法識別現有文件。 建議您檢查文件的訪問權限。";

	case CURLE_LDAP_CANNOT_BIND:
		return "LDAP 無法綁定。LDAP 綁定操作失敗。";

	case CURLE_LDAP_SEARCH_FAILED:
		return "LDAP 搜索無法進行。";

	case CURLE_FUNCTION_NOT_FOUND:
		return "找不到函數。 找不到必要的 zlib 函數。";

	case CURLE_ABORTED_BY_CALLBACK:
		return "由回調中止。 回調向 libcurl 返回了 “abort”。";

	case CURLE_BAD_FUNCTION_ARGUMENT:
		return "內部錯誤。 使用了不正確的參數調用函數。";

	case CURLE_INTERFACE_FAILED:
		return "界面錯誤。 指定的外部界面無法使用。 請通過 CURLOPT_INTERFACE 設置要使用哪個界面來處理外部連接的來源 IP 地址。 (此錯誤代碼以前又稱爲 CURLE_HTTP_PORT_FAILED。)";

	case CURLE_TOO_MANY_REDIRECTS:
		return "重定向過多。 進行重定向時,libcurl 達到了網頁點擊上限。 請使用 CURLOPT_MAXREDIRS 設置上限。";

	case CURLE_UNKNOWN_TELNET_OPTION:
		return "無法識別以 CURLOPT_TELNETOPTIONS 設置的選項。 請參閱相關文檔。";

	case CURLE_TELNET_OPTION_SYNTAX:
		return "telnet 選項字符串的格式不正確。";

	case CURLE_PEER_FAILED_VERIFICATION:
		return "遠程服務器的 SSL 證書或 SSH md5 指紋不正確。";

	case CURLE_GOT_NOTHING:
		return "服務器未返回任何數據,在相應情況下,未返回任何數據就屬於出現錯誤。";

	case CURLE_SSL_ENGINE_NOTFOUND:
		return "找不到指定的加密引擎。";

	case CURLE_SSL_ENGINE_SETFAILED:
		return "無法將選定的 SSL 加密引擎設爲默認選項。";

	case CURLE_SEND_ERROR:
		return "無法發送網絡數據。";

	case CURLE_RECV_ERROR:
		return "接收網絡數據失敗。";

	case CURLE_SSL_CERTPROBLEM:
		return "本地客戶端證書有問題";

	case CURLE_SSL_CIPHER:
		return "無法使用指定的密鑰";

	case CURLE_SSL_CACERT:
		return "無法使用已知的 CA 證書驗證對等證書";

	case CURLE_BAD_CONTENT_ENCODING:
		return "無法識別傳輸編碼";

	case CURLE_LDAP_INVALID_URL:
		return "LDAP 網址無效";

	case CURLE_FILESIZE_EXCEEDED:
		return "超過了文件大小上限";

	case CURLE_USE_SSL_FAILED:
		return "請求的 FTP SSL 級別失敗";

	case CURLE_SEND_FAIL_REWIND:
		return "進行發送操作時,curl 必須迴轉數據以便重新傳輸,但迴轉操作未能成功";

	case CURLE_SSL_ENGINE_INITFAILED:
		return "SSL 引擎初始化失敗";

	case CURLE_LOGIN_DENIED:
		return "遠程服務器拒絕 curl 登錄(7.13.1 新增功能)";

	case CURLE_TFTP_NOTFOUND:
		return "在 TFTP 服務器上找不到文件";

	case CURLE_TFTP_PERM:
		return "在 TFTP 服務器上遇到權限問題";

	case CURLE_REMOTE_DISK_FULL:
		return "服務器磁盤空間不足";

	case CURLE_TFTP_ILLEGAL:
		return "TFTP 操作非法";

	case CURLE_TFTP_UNKNOWNID:
		return "TFTP 傳輸 ID 未知";

	case CURLE_REMOTE_FILE_EXISTS:
		return "文件已存在,無法覆蓋";

	case CURLE_TFTP_NOSUCHUSER:
		return "運行正常的 TFTP 服務器不會返回此錯誤";

	case CURLE_CONV_FAILED:
		return "字符轉換失敗";

	case CURLE_CONV_REQD:
		return "調用方必須註冊轉換回調";

	case CURLE_SSL_CACERT_BADFILE:
		return "讀取 SSL CA 證書時遇到問題(可能是路徑錯誤或訪問權限問題)";

	case CURLE_REMOTE_FILE_NOT_FOUND:
		return "網址中引用的資源不存在";

	case CURLE_SSH:
		return "SSH 會話中發生無法識別的錯誤";

	case CURLE_SSL_SHUTDOWN_FAILED:
		return "無法終止 SSL 連接";

	default:
		return "未知的 curl 下載錯誤";
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章