我正试图让我的索引检查器通过代理工作,因为我们即将向它添加一个反dos过滤器。我已经设法让它工作了,但正如您从代码中看到的,它使用一行(电子邮件和索引)并使用其上的所有代理,然后转到下一行并使用该行上的所有代理,依此类推。(因为foreach循环中的foreach循环)
但我希望它每行使用一行+一个普鲁卡因,尽管我不知道如何进行。。。(换句话说,我希望它在进入下一行(foreach(string line In line))之前,不要循环并使用foreach中的所有proxyline(string proxyline In proxylines))。
现在:
email1&index1 proxy1
email1&index1 proxy2
email1&index1 proxy3
我正在努力实现的目标:
email1&index1 proxy1
email2&index2 proxy2
email3&index3 proxy3
对不起,如果我不清楚,但如果是这样,请让我知道,我会尽我所能更好地解释它。
System.IO.StreamReader file = new System.IO.StreamReader(@"input.txt");
List<string> lines = new List<string>(File.ReadAllLines(@"C:\input.txt"));
List<string> proxylines = new List<string>(File.ReadAllLines(@"C:\proxies.txt"));
foreach (string line in lines)
{
string[] data = line.Split(':');
string email = data[0];
string index = data[1];
using (var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }))
{
foreach (string proxyline in proxylines)
{
WebRequest request = WebRequest.Create("https://website.com");
string[] proxydata = proxyline.Split(':');
string proxy = proxydata[0];
int port = Int32.Parse(proxydata[1]);
request.Proxy = new WebProxy(proxy, port);
Console.WriteLine(proxy + ":" + port);
request.Method = "POST";
string postData = ("{\"email\":\"" + email + "\",\"index\":\"" + index+ "\"}");
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/json";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
dynamic json = JObject.Parse(responseFromServer);
if (json["index"] != null)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(email + ":" + index);
Console.ResetColor();
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(email + ":" + index);
Console.ResetColor();
}
reader.Close();
dataStream.Close();
response.Close();
}
}
}
Console.ReadKey();
那么,你知道怎么做吗?