- ベストアンサー
C#でサイトのデータ(HTML)を取得する方法
- C#を使ってサイトのデータ(HTML)を取得する方法について
- サイトのデータを取得する際に、一部のサイトではソースが途切れる場合がある理由について
- C#のRequestで取得した場合にソースが途切れる可能性がある原因について
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
恐らく、同期モードで読み込んでいるため、読み込み(受信)が完了する前に内部的で落ちちゃっているんじゃないかと思います。 だからといってRequestのTimeOut値を伸ばせばいいのかというと、後続の処理のレスポンスが悪化が懸念されます。 この場合、WebRequestの「BeginGetResponse」を使って、 非同期でWebRequestを読み込んであげる必要があると思います。 WebRequest webreq = (HttpWebRequest)WebRequest.Create(strURL); IAsyncResult r =(IAsyncResult) webreq.BeginGetResponse(new AsyncCallback(ResponseCallback), webreq); //非同期要求が終了した時に呼び出されるコールバックメソッド private static void ResponseCallback(IAsyncResult ar) { // HttpWebRequestを取得 HttpWebRequest webreq = (HttpWebRequest) ar.AsyncState; //非同期要求を終了 HttpWebResponse webres =(HttpWebResponse)webreq.EndGetResponse(ar); } 試していないので、質問に対する自信はありませんが、ご参考に なれば、幸いです。 詳細は、DOBON.NETさんの http://dobon.net/vb/dotnet/internet/webrequest.html にある、「非同期でダウンロードする」をご覧頂けたらと 思います。