![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
C#で
WebRequest webreq = (HttpWebRequest)WebRequest.Create(strURL);
webreq.Timeout = 10000;
HttpWebResponse webres = (HttpWebResponse)webreq.GetResponse();
でサイトのデータ(HTML)を取得しているのですが、
サイトによっては1ページ全部取得できない場合があります。
しかしブラウザで見ると全部表示され、
そのソースをみても全部表示されています。
なぜC#のRequestで取得した場合には、
ソースが途切れる場合があるのでしょうか?
取得中タイムとかの設定があるのでしょうか?
よろしくお願いします。
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.h …
にある、「非同期でダウンロードする」をご覧頂けたらと
思います。
参考URL:http://dobon.net/vb/dotnet/internet/webrequest.h …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- PHP JSON_UNESCAPED_UNICODEをつけてもJSONの日本語がブラウザで表示されない 1 2022/11/16 07:22
- HTML・CSS 別サイトのHTML内にある情報を自動取得して、自分のサイトに組込む方法を教えてください。 例えば、Y 1 2023/06/15 08:09
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- PHP PHP MySql ページング 2 2022/09/20 06:38
- 統計学 Rを用いた「繰り返しがある直交表実験計画法」の分析方法 8 2023/08/01 17:58
- 法学 全部取得条項付種類株式について 1 2022/12/20 21:45
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
非同期関数とノンブロッキング...
-
サイトのデータ(HTML)を取得
-
画面遷移しないで画像の追加を...
-
OVERLAPPED構造体が分かりませ...
-
【JavaScript】confirmのボタン...
-
HTMLでDBからデータを表形式で...
-
ASP.NET(VB)VBソースからJavas...
-
saved from url=(0013)abou
-
DirectXとOpenGLはどちらが動作...
-
ブラウザ閉じたらサーバー処理...
-
JSTLを利用してJavascriptの結...
-
Response.Write(変数)
-
Ajaxでデータベース更新
-
ローカルでのhtmlチェックにつ...
-
jsonテキストデータの並び替え...
-
Ajax、PHP、MySQLでDBからデー...
-
URLの中に&があると&に変...
-
ASP.NET 動的に行を増やすTable
-
処理中インジケータの表示
-
cakephp2とsmartyの表示が遅い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
非同期通信を使うタイミングが...
-
Javadcriptでwebサーバー側にあ...
-
画面遷移しないで画像の追加を...
-
コールバック関数
-
8ビットダウンカウンタをVerilo...
-
非同期関数とノンブロッキング...
-
非道式6進カウンタと非同期式10...
-
OVERLAPPED構造体が分かりませ...
-
AJAX通信のエラー処理について
-
非同期式3進カウンタ
-
Ajax非同期通信の多重リクエス...
-
ExcelVBAで非同期のsocket通信...
-
リロードなしのチャットやWebア...
-
wininet.dllのInternetOpenの同...
-
非同期接続について質問です
-
C#でUDP通信
-
AJAXとSEO。同期通信とPHP送信...
-
c# WebBrowserの通信のキャプチャ
-
【JavaScript】confirmのボタン...
-
HTMLでDBからデータを表形式で...
おすすめ情報