• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サイトのデータ(HTML)を取得)

C#でサイトのデータ(HTML)を取得する方法

このQ&Aのポイント
  • C#を使ってサイトのデータ(HTML)を取得する方法について
  • サイトのデータを取得する際に、一部のサイトではソースが途切れる場合がある理由について
  • C#のRequestで取得した場合にソースが途切れる可能性がある原因について

質問者が選んだベストアンサー

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.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 にある、「非同期でダウンロードする」をご覧頂けたらと 思います。

参考URL:
http://dobon.net/vb/dotnet/internet/webrequest.html

関連するQ&A