好的,這是一個隨機錯誤。我正在動態地將圖像添加到html頁面。這些圖像位於另一臺我無法控制的服務器上。圖像被命名爲這樣的事情: imageName10.jpg imageName11.jpg imageName13.jpg imageName14.jpg imageName16.jpg imageName17.jpg imageName19.jpg.Net WebRequest第一次失敗後一直失敗
讓我們的圖像列表上方。我想獲得所有可用的圖像,但我不知道有多少圖像。我知道它以字符串「imageName」開頭,有一個10到20之間的數字,然後以字符串「.jpg」結尾。我決定創建一個從10到20的循環,創建圖像名稱並將圖像標籤添加到我的html中。這工作,但我不想添加斷開的鏈接,所以我想先檢查圖像是否存在。爲此,我使用WebRequest以5秒的超時時間獲取圖像URL。如果超時,它會跳過鏈接並繼續循環。
String dynamicHtmlStr = String.Empty;
dynamicHtmlStr += "<TABLE>";
WebRequest webReq = null;
WebResponse webResp = null;
for (int i = 10; i < 20; i++)
{
try
{
webReq = WebRequest.Create("http://www.someurl.com/image/imageName" + i + ".jpg");
webReq.Timeout = 5000;
webResp = webReq.GetResponse();
dynamicHtmlStr += "<TR>";
dynamicHtmlStr += "<TD>";
dynamicHtmlStr += "<IMG http://www.someurl.com/image/imageName" + i + ".jpg"\">";
dynamicHtmlStr += "</TD>";
dynamicHtmlStr += "</TR>";
}
catch (Exception)
{
}
}
dynamicHtmlStr += "</TABLE>";
return dynamicHtmlStr;
我的問題是這樣的: 將向WebRequest失敗後的第一次。之後的所有其他網絡請求似乎也失敗了。例如,拿上面的圖片列表。循環從10開始。它執行一個web請求來查看「imageName10.jpg」是否存在,獲得了很好的響應,我將html字符串添加到dynamicHtmlStr變量中。它再次循環,這次是11,並且仍然很好。然後我們繼續前進到12. 12是錯誤的,並且不會添加到dynamicHtmlStr,因爲它不存在,這是正確的。我們轉到13存在,但是這也失敗了,其後的每個其他web請求,無論它是否存在。
這對我來說沒有意義。難道我做錯了什麼?
感謝您對StringBuilder的建議。我會嘗試HttpWebRequest/HttpWebResponse,看看會發生什麼 – 2010-02-01 11:46:08
我的問題是,我沒有關閉響應流。謝謝。 – 2013-08-27 12:49:06
做完這個後,我仍然得到這個問題... – 2016-02-10 11:16:11