utilReplaceInRequestは、FiddlerCoreのHTTPリクエスト本文の文字列を置き換えません

Dec 01 2020

utilReplaceInRequestは、FiddlerCoreでは機能していないようです。

クラウドサービス(Microsoft Azure)にファイルをアップロードしています。関連するHTTPリクエストの本文にファイルの内容が含まれていることがわかります。ファイルをアップロードする前に、これらのコンテンツの一部(HTTPリクエスト本文など)を置き換える必要があります。

Visual Studio C#プログラムを作成し、FiddlerCoreと統合しました。Fiddlerのドキュメントに従って、utilReplaceInRequestメソッドを使用しています。

                 outcome = session.utilReplaceInRequest(original_str, replace_str);
                Console.WriteLine("result: " + outcome + "\n");

何が起こっているのかというと、utilReplaceInRequestは、結果変数がutilReplaceInRequestを何度も呼び出してTrueに設定されているという点で機能しているように見えます。(本文内の複数の文字列を置き換える必要があるため、utilReplaceInRequestを複数回呼び出します)。しかし、クラウドサービスで実際のファイルの内容を確認すると、元の文字列です。何も置き換えられていません。FiddlerCoreでutilReplaceInRequestを呼び出した後にsession.GetRequestBodyAsString()を呼び出してみたところ、本体で文字列が実際に「変更」されていることがわかりました。しかし、その「本体」はクラウドサービスに送信されていないだけです。

しかし、興味深いことに、Fiddler自体で同じことを行うと(「静的関数OnBeforeRequest(oSession:Session){}」関数でルールをカスタマイズすると)、機能し、変更されたHTTPボディがクラウドサービスに送信されます。 !!

FiddlerCoreをFiddlerのように機能させるために(おそらくC#プログラムで)設定する必要のある構成オプションはありますか?

ありがとうございました。

スタン

回答

BorislavIvanov Dec 14 2020 at 03:32

次の設定を試すことができます。

session.bBufferResponse = true;

ここのFiddlerCoreデモで説明されているように。