utilReplaceInRequest ersetzt keine Zeichenfolgen im HTTP-Anforderungshauptteil in FiddlerCore

Dec 01 2020

utilReplaceInRequest scheint in FiddlerCore nicht für mich zu funktionieren.

Ich lade eine Datei in einen Cloud-Dienst (Microsoft Azure) hoch. Ich kann sehen, dass der Text der zugehörigen HTTP-Anforderung den Dateiinhalt enthält. Ich muss einige dieser Inhalte ersetzen (z. B. im HTTP-Anforderungshauptteil), bevor die Datei hochgeladen wird.

Ich habe ein Visual Studio C # -Programm erstellt und in FiddlerCore integriert. Ich verwende die utilReplaceInRequest-Methode gemäß Fiddlers Dokumentation:

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

Was passiert, ist, dass utilReplaceInRequest "erscheint", indem die Ergebnisvariable auf True gesetzt wird, wenn ich utilReplaceInRequest mehrmals aufrufe. (Ich muss mehrere Zeichenfolgen im Body ersetzen, daher rufe ich utilReplaceInRequest mehrmals auf.) Wenn ich jedoch den tatsächlichen Dateiinhalt im Cloud-Dienst überprüfe, handelt es sich um die ursprünglichen Zeichenfolgen. Nichts wurde ersetzt. Ich habe sogar versucht, session.GetRequestBodyAsString () aufzurufen, nachdem ich utilReplaceInRequest in FiddlerCore aufgerufen habe, und festgestellt, dass die Zeichenfolgen im Text tatsächlich "geändert" wurden. Aber dieser "Körper" wird einfach nicht an den Cloud-Dienst gesendet.

Interessanterweise funktioniert es, wenn ich dasselbe in Fiddler selbst mache (die Regeln in der Funktion "Statische Funktion OnBeforeRequest (oSession: Session) {}" anpassen), und der geänderte HTTP-Body wird an den Cloud-Dienst gesendet !

Gibt es eine Konfigurationsoption, die ich festlegen muss (möglicherweise in meinem C # -Programm), damit FiddlerCore wie Fiddler funktioniert?

Vielen Dank.

Stan

Antworten

BorislavIvanov Dec 14 2020 at 03:32

Sie können versuchen, Folgendes einzustellen:

session.bBufferResponse = true;

wie in den FiddlerCore-Demos hier beschrieben .