0

.Net Framework 3.5 SP1 で作成された WPF アプリケーションがあり、さまざまな Web アプリケーションを表示するために使用されます。WPF アプリケーションは、Web ブラウザー コントロールを使用して、さまざまなアプリケーションの Web ページを表示します。

これらの Web ページを計測して、応答時間やその他のさまざまなパラメーターを測定します。その中でページ サイズは重要なパラメーターです。

以下のコードは、ページ サイズにアクセスする方法を示しています。

void wbEvents1_DocumentComplete(object pDisp, ref object URL)

{  objInstrument.PageSize = Convert.ToInt32(((mshtml.HTMLDocumentClass)(((SHDocVw.IWebBrowser2)pDisp).Document)).fileSize);

}

しかし、ここでは次の問題に直面しています。

  1. ドキュメント オブジェクトのファイル サイズ、つまりダウンロードされた HTML のサイズのみを取得できます。関連するリソース (.css、.js、.img など) のサイズは含まれません。必要なのは、全体的なページ サイズです。 HTML (.css; .js; .img など) 内のすべてのリソース オブジェクトを含む HTML ドキュメント。

  2. また、ダウンロードされたページのヘッダーに次のパラメーターのいずれかが含まれている場合。IE は fileSize 属性の値を返しません。

    Cache-Control = no-cache

    Pragma = no-cache

私たちが直面している上記の 2 つの問題をできるだけ早く解決するための助けを求めます。

4

1 に答える 1

0

これは直接的な答えではありませんが、ローカル プロキシを介して問題の Web ページを取得することを検討してください。これにより、すべてのトラフィックを監視および計測し、プロセス外で実行された場合に IPC を介して親アプリに通信することができます。

ブラウザとネットの間にプロキシを配置すると、転送されたバイト数、各リクエストに費やされた時間などを正確かつ完全に測定できます。おそらく、オブジェクトの種類などによってトラフィックを分類する既存の監視ソリューションがたくさんあります.プロキシからの生の情報を使用して、独自の分析ピースを作成できます。おそらく、Squid + ログファイル アナライザー プラグインまたは既存のプロキシを適合させて、必要な統計を収集します ( CharlesProxyの精神で)。

ブラウザー コントロールにプロキシを使用するように指示するには、InternetSetOption()を使用できます (例があります)。

于 2011-03-17T01:58:50.833 に答える