隧道转发代理是一种根据请求自动切换代理IP的产品,适合快速启动爬虫采集项目。该产品一般都是http代理,这样可以避免https代理使用中需要安装证书带来的问题,在C#按照下面的步骤可以实现:
1、创建代理对象
var proxy = new WebProxy
{
// *** 通过代理服务器域名和端口(官网www.16yun.cn),创建地址 ***
Address = new Uri($"http://{t.16yun.cn}:{proxyPort}"),
BypassProxyOnLocal = false,
UseDefaultCredentials = false,
// *** 代理服务器的用户名和密码***
Credentials = new NetworkCredential(
userName: proxyUserName,
password: proxyPassword)
};
2、创建代理客户端
var httpClientHandler = new HttpClientHandler
{
Proxy = proxy,
};
3、验证代理用户名和密码
if (needServerAuthentication)
{
httpClientHandler.PreAuthenticate = true;
httpClientHandler.UseDefaultCredentials = false;
// *** 这些认证信息被提供给代理服务器,而不是网络服务器 ***
httpClientHandler.Credentials = new NetworkCredential(
userName: serverUserName,
password: serverPassword);
}
4、创建HTTP客户端
var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
以上代码创建的HTTP客户端只支持更高的 TLS 版本(比如 TLS 1.2),否则会导致请求失败。要解决其它版本的问题,可以在Address对象创建之前添加如下部分:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
Address = new Uri($"https://{t.16yun.cn}:{proxyPort}")
C#使用代理IP采集数据的更多资料,可以微信联系获取,或者搜索亿牛云索取资料。