我被要求編寫一個小程序來檢查我們在線的所有頁面沒有錯誤。獲得Web響應超時
要做到這一點,我用下面的代碼(其中pathsToCheck是列表,每個字符串是像http://www.domain.com/webpage
一個URL)從第三項
foreach (string path in pathsToCheck)
{
HttpWebResponse response = null;
try
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(path);
webRequest.AllowAutoRedirect = true;
response = (HttpWebResponse)webRequest.GetResponse();
System.Diagnostics.Debug.Assert(response.StatusDescription == "OK", "Look into this, it doesn't like the response code");
System.Threading.Thread.Sleep(1000);
}
catch (Exception ex)
{
Console.WriteLine("Failed : " + path);
}
finally
{
Write(--totalPathsToCheck);
}
}
我遇到的問題是,它總是失敗(timesout)在列表中(一切都從第三個失敗)。當然,我猜想第三項必須有錯,但沒有。
由於第一個項目沒有超時,我創建了一個新的列表,其中有5個項目,所有相同的URL(我知道一個不會超時)。同樣的問題發生在第三次迭代時,它會超時並繼續超時到列表的其餘部分。
然後我決定測試一個不同的URL(在不同的域),同樣的問題仍然存在。
我在代碼中加入了睡眠,並增加了它,以防萬一在給定的時間段內有太多的請求,但沒有任何區別。
我該怎麼做?