我的程序使用WebRequest
和WebResponse
以便在迭代中從給定URL下載HTML文件。例如,URL字符串看起來像Web響應/ Webrequest不工作
http://www.aaaa.com/cccc=
varB
其中varB
是通過循環每次迭代不同的字符串。
將文件下載到流中後,它會搜索流中特定的文本字符串並將它們存儲到單獨的文本文件中。然而,我發現在一些迭代中它似乎沒有讀取任何內容(當我將它輸入地址欄時,它的URL字符串是有效的,所以它不是無效的URL)。
我把流和WebResponse
對象using
塊,我也有一個try…catch
塊,但沒有異常發生。在循環中使用WebRequest
和WebResponse
有問題嗎?
try
{
foreach (string name in names)
{
string urlstr = "…"; // URL format like I mentioned earlier
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(urlstr);
myRequest.Timeout = 30000;
//store the response in myResponse
using (HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse())
{
//register I/O stream associated with myResponse
using (Stream myStream = myResponse.GetResponseStream())
{
//create StreamReader that reads characters one at a time
using (StreamReader myReader = new StreamReader(myStream))
{
myReader.ReadLine();
sw.WriteLine(name + " " + myReader.ReadLine());
}
}
}
}
sw.Close();
}
結果將類似於此:
name1 stuffReadfromfile
name2 stuffReadfromfile
name3 stuffReadfromfile
name4
name5 stuffReadfromfile
name6
name7 stuffReadfromfile
name8 stuffReadfromfile
name9
name10 stuffReadfromfile
即使有應該是每個名稱後stuffReadfromfile
。
試圖在獲取響應流之前嘗試閱讀myResponse.StatusCode。 – 2012-02-11 09:14:51