我正在使用代理服务,通过我的代理系统,每个请求都可以为我提供新的IP。它工作正常,但是我需要在keepalive
中将HttpWebRequest
设置为false,否则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,与上面/连接中使用的代理相同
关闭与代理的连接
从头再来
有没有办法实现这一目标?