我正在进行一些HTTP标头测试,以检查网址是否存在。我这样做是随机生成的字符串url通过一个调用HttpRequest函数的while循环。问题是,只要HttpWebRequest是Async,while循环就会继续运行,同时很多进程会检查很多链接。所以我想做的是将while循环延迟几秒/毫秒,或者只是等待HttpWebRequest一次只处理3个请求。我刚刚迷失在这里,我不知道该怎么做。
我的while循环看起来像这样
String Episode = textBox1.Text;
String Rand = newInt(16);
String Url = "http://someurl.com?_" + Episode + "paradisehotel_" + Rand + ".wmv";
while (checkUrl(Url) == false)
{
Rand = newInt(16);
while (isInList(Rand, list))
{
Rand = newInt(16);
}
list.Add(Rand);
Url = "someurl.com_" + Episode + "paradisehotel_" + Rand + ".wmv";
}
我的CheckUrl函数看起来像这样
private bool checkUrl(String url)
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(@url);
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
try
{
WebResponse response = req.GetResponse();
return true;
}
catch (WebException ex)
{
Console.WriteLine(ex.Message);
return false;
}
}
我希望有人比我更聪明有一个解决方案。 非常感谢你 纳斯
答案 0 :(得分:1)
在加载响应之后,使用示例here(太多代码将其复制并粘贴到此处),它使用异步回调,并在回调内增加静态计数器。然后,您需要做的就是在执行下一个请求之前,通过使用thread.sleep检查计数器在while循环的每次迭代中是否超过最大值。