
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに張り付けた写真のフ...
-
キヤノン アソビカメラ iNSPiC ...
-
VB.NET Excelを読み込んでDataT...
-
aspxをhtmlに変換する方法について
-
vba 空のデータをSplitする時の...
-
VBAでPDFを作成する際、同じ名...
-
phpのファイルがブラウザで開か...
-
【VB.NET】Excelの最終行までの...
-
バッチで当日日付で作成される...
-
高校1年生情報の問題について。
-
エクセルVBAで印刷する書式をク...
-
Windows10にデュアルブートでXP...
-
Windowsで複数のファイルを同じ...
-
vba マージエリアの行数を非表...
-
SJISで、全角文字Aの文字コード...
-
SPO2測定
-
エクセルのマクロについて教え...
-
インドe-Visa 承認書のApplicat...
-
SPIの非言語の割合と比が難しく...
-
SPIの対策は参考書でやるべきか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
非同期通信を使うタイミングが...
-
コールバック関数
-
OVERLAPPED構造体が分かりませ...
-
非同期式3進カウンタ
-
AJAX通信が終わるまで次の処理...
-
ajaxの使いどころ
-
非同期関数とノンブロッキング...
-
ExcelVBAで非同期のsocket通信...
-
SRAM製品の同期・非同期の違い
-
サーブレットはサーバーと同期...
-
JK-FFを使う非同期10進・2進カ...
-
非道式6進カウンタと非同期式10...
-
8ビットダウンカウンタをVerilo...
-
jsonテキストデータの並び替え...
-
ジャンクの箇所を一切書かずに...
-
【JavaScript】confirmのボタン...
-
saved from url=(0013)abou
-
HTMLでDBからデータを表形式で...
-
データ受け渡しについて
-
DirectXとOpenGLはどちらが動作...
おすすめ情報