私のプログラムは、繰り返しで特定の URL から HTML ファイルをダウンロードするためにWebRequest
andを使用します。WebResponse
たとえば、URL 文字列は次のようになります。
http://www.aaaa.com/cccc=
varB
wherevarB
は、ループの反復ごとに異なる文字列です。
ファイルをストリームにダウンロードした後、ストリームで特定のテキスト文字列を検索し、それらを別のテキスト ファイルに保存します。ただし、一部の反復では何も読み取っていないように見えることがわかりました (アドレスバーに入力したときにその 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
後にあるはずですが。