我正在尝试编写一个需要使用代理 3 次然后移动到列表中的下一个代理的程序,依此类推。用户将他们的代理列表输入到列表/文本文件中,程序将使用列表中的第一个,然后继续遍历列表,直到它到达末尾。
如何从列表中获取代理详细信息并使用 httpwebrequest 使用它们?如果我在代码中设置代理但不知道如何让它通过列表工作,我使用代理没有问题
基本上是这样的:用户将代理列表输入文本文件程序使用列表中的第一个代理 3 次然后移动到下一个。如此重复直到完成。
我正在尝试编写一个需要使用代理 3 次然后移动到列表中的下一个代理的程序,依此类推。用户将他们的代理列表输入到列表/文本文件中,程序将使用列表中的第一个,然后继续遍历列表,直到它到达末尾。
如何从列表中获取代理详细信息并使用 httpwebrequest 使用它们?如果我在代码中设置代理但不知道如何让它通过列表工作,我使用代理没有问题
基本上是这样的:用户将代理列表输入文本文件程序使用列表中的第一个代理 3 次然后移动到下一个。如此重复直到完成。
我现在看到你的评论,所以试试这个:
foreach (string proxy in proxies) // proxies is the list entered by user
{
// proxy is the proxy you must try for three times;
bool proxy_works = test_proxy(); // test function you must write
// if you need to find first working proxy and then stop
// use next statements, on the contrary remove them
// and you'll travel the whole list
if (proxy_works)
{
// do here what you need (save working proxy?!?)
break;
}
}
如果您的用户输入以逗号分隔的代理(例如),您可以按如下方式构建代理:
string[] proxies = strProxy.Split(",".ToCharArray(),
StringSplitOptions.RemoveEmptyEntries);
或者如果你想从文件中读取:
string[] proxies = File.ReadAllLines(file_path);
如果每个代理都完成了,host_name:port
你可以做
string vars = proxy.Split(':'.ToCharArray());
if (vars.Length == 2)
{
string MyProxyHostString = vars[0];
int MyProxyPort = int.Parse(vars[1]); // Better if you use int.TryParse method
}