1

元の要求から取得した応答で参照されるリソースに基づいて、依存する要求を呼び出すことができる (Visual Studio のテスト ツール フレームワーク内の) WebTestRequest クラスの動作をシミュレートしたいと考えています。

たとえば、次のようにして Web リクエストを発行し、レスポンスを取得するとします。

string url = "http://www.mysite.com";
WebRequest request = WebRequest.Create(url);
using (WebResponse response = request.GetResponse())
{
    StreamReader reader = new StreamReader(response.GetResponseStream()); 
    string responseText = reader.ReadToEnd();
}

responseText他のリソース (js/css ファイル、画像など) へのリクエストがあるかどうかを解析して確認できるようにしたいと考えています。

これを行う簡単な方法はありますか?リソース要求の一部はプログラムで設定されている可能性があり、単純なテキスト解析では明らかにならない可能性があるため、これを手動で行うことをためらっています。

4

2 に答える 2

0

html/sgml パーサー ライブラリを使用します。私は Visual Studio に詳しくありませんが、HTML を解析するためのフレームワークが世の中にあります。1 つを見つけて、要素の検索に関連するものを API で探します。

于 2009-12-30T17:36:45.893 に答える
0

WebTestRequest 自体は、javascript を認識していないため、依存する要求を特定するために「単純なテキスト解析」のみを行うことは十分に確信しています。したがって、そのような実装を行う場合、コードは動作を正確にシミュレートすることになります。

以下は、HMTL 4 仕様をざっと見ただけで見つけられた、追加のリソースを参照できるため解析が必要なすべての要素のリストです。

  • <link href=
  • <img src=
  • <script src=
  • <iframe src=
  • <object data=
  • <area href=

それが網羅的かどうかはわかりません。

ところで、あなたが最後に何をしたのか気になります。

編集:

リソース要求の一部はプログラムで設定されている可能性があり、単純なテキスト解析では明らかにならない場合があります

実際、HTML 応答を解析して依存する要求を特定することは、ある時点で不可能になります。例を挙げましょう。Google Web Toolkit で開発されたものです。私がテストした最近の GWT アプリでは、基本的に解析可能なhtmlはありませんでした。すべてが JavaScript から実行されます。明白なパス名を抽出する (利用可能な場合) は、実際には条件付きロジックが特定の依存関係を選択し、他の依存関係を選択していないため、役に立ちませんでした。

于 2011-11-10T06:31:22.520 に答える