私のプログラムでは、反復で指定されたURLからHTMLファイルをダウンロードするために、WebRequest
とWebResponse
を使用しています。例えば、URL文字列はvarB
がループを通る反復ごとに異なる文字列である Webresponse/Webrequest not working
varB
http://www.aaaa.com/cccc=
ようになります。ファイルをストリームにダウンロードした後、ストリームの特定の文字列を検索し、別のテキストファイルに格納します。しかし、いくつかの反復では何も読んでいないようです(URLバーは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を読んで試してみてくださいに役立ちます願っています。 –