C#代理列表
本文关键字:列表 代理 | 更新日期: 2023-09-27 18:00:43
我正在通过C#使用代理,想知道是否有人知道管理它们的好方法。
正如您所知,代理的状态会随着时间的推移而变化,因此那些坏的代理应该稍后重试或删除。什么是维护这个代理列表的好方法,以便使用最好的代理,而那些失败的代理则不会经常使用或在一段时间后使用。
我所指的代理类型只是一个可以应用于HttpWebRequest的WebProxy。
最大限度地减少具有坏代理的请求数量也很重要。
如果我理解你的意思,你说的是用于连接到web服务器的HTTP代理,而不是,例如WCF代理或RPC代理。
奇怪的是,你表现得好像你的程序将使用多个。这确实是一个非常罕见的节目!我们大多数人只是使用内置在操作系统配置中的默认配置。代理服务器会突然宕机的想法似乎更为罕见。您是否计划为您的请求随机选择一个代理?您只是想查找代理服务器吗?
无论如何,您可以知道代理服务器是否不工作的唯一方法是检查响应。状态代码。CCD_ 1或CCD_。
所以。。。管理哪些是好的,哪些是坏的。我会坚持使用一个简单的字典,以WebProxy对象为值,以代理的URI为关键字。假设我理解你想做什么,如果你尝试了一个代理URI,并且它很好,那么就把它添加到字典中。如果发现现有代理不正确,请将其从字典中删除。
我认为优先级队列可能太多了。此外,您将使用什么优先级来分类代理列表?
我认为在这种情况下,更简单的设计可能会更好:两个"桶"或两个FIFO列表,一个是推送最新的有效代理,另一个列表是推送不工作的代理。
然后从这两个地址中弹出代理IP地址以再次检查。您可以决定哪个代理列表检查得更频繁。
具有代理IP列表的网站,如proxy-IP-list.com,可能会使用类似的方法。