2

もちろん、フィドラーは素晴らしいです!

したがって、リクエスト(いくつかのヘッダー、大きなxmlペイロード)を作成し、gzipで圧縮されたhttp POSTを実行する必要があります(ヘッダーはgzip圧縮を示し、貼り付けたxmlペイロードはgzipで圧縮されます...仕様にあるとおりです)。

どのように?

「Rules」オプションを使用してgzipを実行すると、リクエストは変更されないように見えます(私が見る限り)。gzip圧縮されていない場合と同じように表示されます。

現在フィドラー2.3.9.2を使用しています

CURLリファレンス:フィドラーでの目的の目標は、いくつかの手順でカールで実行できます。

1)gzippayload.xml(gzipファイルを作成できる7-Zipまたはその他のツールを使用)。次のファイルを呼び出します:payload.xml.gz

2)この構文を使用する

curl --header "Content-Type: application/xml" --header "Content-Encoding: gzip" --data-binary "@payload.xml.gz" https://<yourendpoint> --insecure --trace-ascii -

TIA!

4

1 に答える 1

4

まず、現在のバージョンのFiddlerにアップグレードしてください。

次に、Fiddlerの目に見える圧縮機能のほとんどは、要求ではなく応答の圧縮に関連していることを理解することが重要です。これは、多くの/ほとんどのサーバーがリクエストの圧縮をサポートしていないためです。これは、ブラウザがサポートされるかどうかを事前に知る方法がなく、したがってブラウザがリクエストを圧縮しないためです。同様に、圧縮されたリクエストをサポートすると、サーバーはZIP爆弾攻撃にさらされます。

そうは言っても、一部のサーバーは圧縮されたリクエストをサポートしており、Fiddlerはこれらを生成できます。最初の質問は「どのようにリクエストを生成していますか?」です。

Composerを使用している場合は、次のようにします。[ルール]>[ルールのカスタマイズ]をクリックします。OnBeforeRequestまでスクロールします。次の行を追加します。

static function OnBeforeRequest(oSession: Session) {        
       if (oSession.oRequest.headers.ExistsAndContains("Content-Encoding", "doGZIP"))
        {
          oSession.oRequest.headers.Remove("Content-Encoding");
          oSession.utilGZIPRequest();
        }

これで、Content-Encoding:doGZIPヘッダーを含むすべてのリクエストは、サーバーに送信される前にFiddlerによって自動的に圧縮されます。

于 2012-12-05T22:26:23.100 に答える