Я использую прокси-сервис, который позволяет мне получать новый IP-адрес при каждом запросе, который я делаю через их прокси-систему. Он работает нормально, но мне нужно установить keepalive
в false в моем HttpWebRequest
, иначе c # будет использовать соединение, которое было создано ранее, что приводит к использованию одного и того же соединения / прокси снова и снова. Я хотел бы отправить 3 запроса через один «сеанс / прокси», а затем закрыть его, чтобы следующий HttpWebRequest
больше не использовал то же соединение, но я не слишком уверен, как мне это понять.
Приведенный ниже код будет открывать новое соединение с прокси-системой каждый раз, когда я вызываю функцию:
Uri site = new Uri("https://randomsitehere/");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(site);
request.CookieContainer = cookies;
request.Proxy = new WebProxy(proxyURI, true, null, credentials);
request.UserAgent = "";
request.KeepAlive = false;
request.Timeout = 5000;
request.Method = "GET";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
Stream dataStream = response.GetResponseStream();
StreamReader streamreader = new StreamReader(dataStream, Encoding.UTF8);
string responsex = streamreader.ReadToEnd();
dataStream.Close();
response.Close();
dataStream.Close();
string tokens = responsex.Split(new[] { @"""ip"": """ }, StringSplitOptions.None)[1].Split('"')[0];
Console.WriteLine("Thread " + i +": "+tokens);
}
То, что я пытаюсь архивировать, выглядит так:
запрос № 1 с новым прокси
запрос № 2 с прокси, использованным выше / соединение
запрос № 3 с тем же прокси, использованным выше / соединение
закрыть соединение с прокси
начать заново с начала
Есть ли способ осознать это?