Enum HttpErrorKind
CurlHttpException 的语义分类。提供给调用方做 switch / 重试策略判断,
避免直接依赖 libcurl 的 CURLcode 数值。
public enum HttpErrorKind
Fields
ConnectFailed = 3TCP 建连失败(端口不通、服务器拒绝)。对应 CURLE_COULDNT_CONNECT。
DnsFailed = 2DNS 解析失败(主机或代理)。对应 CURLE_COULDNT_RESOLVE_HOST / CURLE_COULDNT_RESOLVE_PROXY。
InvalidUrl = 1URL 格式非法或协议不支持。对应 CURLE_URL_MALFORMAT / CURLE_UNSUPPORTED_PROTOCOL。
NetworkIo = 6传输中途 I/O 失败(send/recv 被中断、短读等)。对应 CURLE_SEND_ERROR / CURLE_RECV_ERROR / CURLE_PARTIAL_FILE / CURLE_GOT_NOTHING 等。常见于弱网,通常可重试。
OutOfMemory = 10libcurl 报告内存不足。对应 CURLE_OUT_OF_MEMORY。
ProtocolError = 7HTTP/2/3 帧错、奇怪响应、编码错。对应 CURLE_HTTP2 / CURLE_HTTP2_STREAM / CURLE_HTTP3 / CURLE_QUIC_CONNECT_ERROR / CURLE_WEIRD_SERVER_REPLY / CURLE_BAD_CONTENT_ENCODING 等。
ProxyError = 8代理握手失败。对应 CURLE_PROXY。
SetupFailed = 11libcurl 内部 setup 失败。对应 CURLE_FAILED_INIT / CURLE_UNKNOWN_OPTION / CURLE_SETOPT_OPTION_SYNTAX / CURLE_BAD_FUNCTION_ARGUMENT / CURLE_NOT_BUILT_IN / CURLE_INTERFACE_FAILED / CURLE_RECURSIVE_API_CALL,以及
curl_multi_*路径 返回非 0 的 CURLMcode(例如 add_handle / remove_handle 失败)。 这类多半是本库或 libcurl 自身的 bug,正常使用下几乎见不到。Timeout = 5请求超过
TimeoutMs或ConnectTimeoutMs。对应 CURLE_OPERATION_TIMEDOUT。TlsError = 4TLS/SSL 握手或证书相关失败。对应 CURLE_SSL_* 系列、CURLE_PEER_FAILED_VERIFICATION 等。
TooManyRedirects = 9重定向超出 libcurl 默认上限。对应 CURLE_TOO_MANY_REDIRECTS。
Unknown = 0未分类。0 是枚举默认值,作兜底和未初始化哨兵。 未列入其它分类的
CURLcode也归到这里。