发送一个全新的 HTTP 请求不起作用?

问题描述

我正在使用 StormProxies 轮换代理服务。 每次请求后,IP 都会轮换……但是,我的 IP 仅在我完全重新启动控制台应用程序时才会轮换。因此,这表明他们的服务正在按照宣传的那样工作,但由于某种原因,尽管在每个循环结束时使用了 .dispose(),但我的 WebClient 上的循环似乎没有发送新请求/意味着我的代理不会轮换...

我想我会提到,stormproxys 只需要一个用户名/密码。他们在后台做轮换代理的工作……我只需要发送一个新请求。

我如何确保每个循环都是一个全新的请求来强制代理旋转?我的代码如下。

for (int i = 0; i < 25000; i++)
{
    number = i;
    uaClass ua = new uaClass();
    WebClient wc = new WebClient();

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

    try
    {
        string site = "https://example.com";
        wc.Proxy = new WebProxy("11.111.11.111:13012");
        wc.Headers.Add("user-agent",uaClass.UAList());
        var page = wc.DownloadString(site + i);
        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(page);

        var html = doc.DocumentNode.InnerHtml;

        foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//*[@id=\"root\"]/div[1]/div/div[2]/div/div[2]/div/div/div[2]/div[2]/a"))
        {
            var linkHref = link.GetAttributeValue("href",string.Empty);
            if (linkHref.Contains("example") || linkHref.Contains("example"))
            {
            }
            else
            {
                linkHref = "https://www.example.com" + linkHref;
            }

            if (um.checkRecord(linkHref) == false)
            {
                um.insertUrl(linkHref);
                Console.WriteLine(linkHref + " page: " + i);
            }
        }
        wc.dispose();
    }
    catch
    {
        i--;
        wc.dispose();
        Console.WriteLine("Failed" + Environment.NewLine + "trying " + i + " again");
    }
}

没有太多经验,所以如果我很傻,我很抱歉。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)