Class CurlHttpClient
libcurl 的 HTTP 客户端实现。
public class CurlHttpClient : IHttpClient, IDisposable
- Inheritance
-
CurlHttpClient
- Implements
- Inherited Members
- Extension Methods
Remarks
代理行为:默认不使用代理,且显式屏蔽 libcurl 对
HTTPS_PROXY / HTTP_PROXY 等环境变量的自动读取,避免
开发/宿主机上的代理泄漏到业务网络。需要走代理时调用
SetProxy(HttpProxy) 显式激活;ClearProxy() 恢复默认行为。
注意 HTTP/3 无法经 HTTP 代理隧道化,启用代理后 libcurl 会回退到 HTTP/2。
Cookie 行为:EnableCookies 为 true
的请求接入本 client 的 cookie jar(基于 CURLSH),跨请求持久化。
不同 CurlHttpClient 实例各自持有独立 jar,互不共享。EnableCookies=false
的请求既不读也不写 jar。jar 为纯内存存储,client Dispose 后清空。
Constructors
Properties
- Diagnostics
诊断统计。构造时 enableDiagnostics=true 才可用,否则为 null。
- PreferredVersion
全局 HTTP 版本偏好。对所有后续请求生效。默认 PreferH3。
- UserAgent
默认 User-Agent。对所有请求生效;请求级 Headers 里设
User-Agent会覆盖本值(libcurl slist 优先于 CURLOPT_USERAGENT)。 默认"CurlUnity/0.1.0"。设为null或空不覆盖 libcurl 默认。
- VerifySSL
是否验证 SSL 证书。默认 true。
Methods
- ClearProxy()
关闭代理,回到 client 的默认行为(不走代理,且屏蔽环境变量)。
- Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
- SendAsync(IHttpRequest, CancellationToken)
异步发送一个 HTTP 请求。Task 完成后的结果所有权归调用方,用完需
Dispose()释放底层 easy handle。
- SetProxy(HttpProxy)
启用代理。对本次调用之后构建的请求生效,不影响已进入 worker 队列的请求。