utilReplaceInRequest nie zastępuje ciągów w treści żądania HTTP w FiddlerCore

Dec 01 2020

Zdaje się, że utilReplaceInRequest nie działa dla mnie w FiddlerCore.

Przesyłam plik do usługi w chmurze (Microsoft Azure). Widzę, że treść powiązanego żądania HTTP zawiera zawartość pliku. Muszę zamienić niektóre z tych treści (np. W treści żądania HTTP) przed załadowaniem pliku.

Stworzyłem program Visual Studio C # i zintegrowałem go z FiddlerCore. Używam metody utilReplaceInRequest zgodnie z dokumentacją Fiddlera:

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

Dzieje się tak, że utilReplaceInRequest „wydaje się” działać, ponieważ zmienna wynikowa jest ustawiona na True, wielokrotnie wywołując utilReplaceInRequest. (Muszę zamienić wiele ciągów w treści, więc wielokrotnie wywołuję utilReplaceInRequest). Ale kiedy sprawdzam rzeczywistą zawartość pliku w usłudze w chmurze, są to oryginalne ciągi. Nic nie zostało wymienione. Próbowałem nawet wywołać session.GetRequestBodyAsString () po wywołaniu funkcji utilReplaceInRequest w FiddlerCore i zobaczyłem, że ciągi znaków zostały rzeczywiście „zmienione” w treści. Ale to „ciało” po prostu nie jest wysyłane do usługi w chmurze.

Ale co ciekawe - kiedy robię to samo w samym Fiddlerze (dostosowuję Reguły w funkcji „static function OnBeforeRequest (oSession: Session) {}”), to działa, a zmodyfikowana treść HTTP jest wysyłana do usługi w chmurze !

Czy jest jakaś opcja konfiguracji, którą muszę ustawić (być może w moim programie C #), aby FiddlerCore działał jak Fiddler?

Dziękuję Ci.

Stan

Odpowiedzi

BorislavIvanov Dec 14 2020 at 03:32

Możesz spróbować ustawić:

session.bBufferResponse = true;

jak opisano w demonstracjach FiddlerCore tutaj .