2016-07-13 14 views
0

ホームプロジェクトのいくつかのWebページを解析したいと思います。普段私はc#HttpWebRequestHttpWebResponseとその仕事をよく使う。ただし、何らかの理由で同じデータがにあり、同じリクエストに対してfiddlerにはありません。私はgzip圧縮(rq.AutomaticDecompression = DecompressionMethods.GZip)を使用します。そうでなければ何も特別なことはありません。私が解析したいWebページには、ajaxtelerik(rad)の呼び出しがあります。しかし、なぜfiddlerにフルページ(800行)があり、私のC#アプリに部分ページ(300行)があるのですか?C#HttpResponse with Fiddler

手掛かり?

+0

HttpWebResponseに表示される内容は、同じリクエストをサーバーに送信した場合、フィドラーと同じである必要があります(単一のフィドラーセッションを見ている場合)。ユーザーエージェントと、ブラウザでリクエストしたときに送信している可能性のあるCookieを送信していますか?あなたはいくつかのスクリーンショットを追加し、違いを指摘できますか? –

+0

便利なスクリーンショットを追加するのは難しいです。私は自分のアプリケーション(Webブラウザからのものではない)によって実行されたフィドラーでコールをチェックしました。 C#文字列とFiddlerのtextviewタブの内容を比較すると、同じ情報はありません。私はそれを解凍したが、gzipがなければストリームを読むことはできない。 –

+0

あなたのHttpWebResponseの生のバイトと、フィドラーでバグを発見しない限り、フィドラーを通してストリーミングされた生のバイトは同じになりますが、それは起こりそうもありません。あなたのアプリケーションからリクエストしているURLを共有しても構いませんか? –

答えて

0

私はこの1つで刺すつもりです。

コードでは、Javascriptやその他のリンクされたリソースをすべてレンダリングしないため、完全な応答は得られません。フィドラーであなたは完全な応答を見ています。

これで、ヘッドレスブラウザを使用することができます。そのうちのいくつかはセレン、Phanthomjsです。彼らは、ページ全体がレンダリングされるまで待つ能力を持っています、あなたはそれがあなたがそれを使用している方法でC#で行うことができない完全なスタックトレースを見ることができます。

彼らはNuGet

+0

私はそれを試してみましょう。私はHtmlAgilityPackで試しましたが、私は同じ結果を得ました。 –

+0

HTMLAgilityPackはヘッドレスブラウザではありません(あなたが渡したものだけが必要です) – Henry

0

OKを通じて利用可能な、それは私が最新バージョン(更新3)と私のVS2015を更新し、私は(私のフィドラーの応答と同じフルページ、)良い結果を得ることが判明します..私それは再起動の問題ではない場合でも、なぜか、確かではない..同じコード..同じ.netフレームワーク.. とにかく..問題を解決した。