C# 使用CloudProxySharp请求时代理IP未生效 仍使用本地IP问题咨询
代理未生效的原因及解决方法
核心原因
CloudProxySharp的ClearanceHandler单独传入代理地址的配置方式存在设计限制:
- 你传入构造函数的代理地址仅会被用于Cloudflare验证码验证阶段的请求,后续发起的业务请求默认不会继承该代理配置,会走系统默认的无代理网络
- 旧版本的CloudProxySharp存在代理参数不向下传递的已知bug,不会自动把配置的代理应用到内部的请求处理器
修复方案
显式创建带代理配置的HttpClientHandler,再将其传入ClearanceHandler作为内部请求处理器,确保所有阶段的请求都走你指定的代理:
using System.Net; // 需提前引入该命名空间使用WebProxy private async void button2_Click(object sender, EventArgs e) { // 先创建底层的HttpClientHandler,显式配置代理 var proxyAddress = "http://139.99.74.79:8080"; var innerHandler = new HttpClientHandler() { Proxy = new WebProxy(proxyAddress), UseProxy = true }; // 将带代理的内部handler传给ClearanceHandler,再配置其他参数 var handler2 = new ClearanceHandler(innerHandler) { UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0", MaxTimeout = 60000, // 验证阶段也使用同一个代理 Proxy = proxyAddress }; var client = new HttpClient(handler2); HttpResponseMessage response = await client.GetAsync("https://v4.ident.me/"); var s = await response.Content.ReadAsStringAsync(); MessageBox.Show(s); }
额外验证点
- 确认你使用的代理地址本身可正常连通,没有IP白名单、身份校验的限制
- 建议升级CloudProxySharp到最新稳定版,避免版本bug导致的配置失效
内容的提问来源于stack exchange,提问作者john lahaut
相关产品推荐
相关产品推荐

