utilReplaceInRequest tidak menggantikan string dalam isi permintaan HTTP di FiddlerCore

Dec 01 2020

utilReplaceInRequest tampaknya tidak berfungsi untuk saya di FiddlerCore.

Saya mengunggah file ke layanan cloud (Microsoft Azure). Saya dapat melihat bahwa tubuh permintaan HTTP terkait berisi konten file. Saya perlu mengganti beberapa konten tersebut (mis. Di badan permintaan HTTP) sebelum file diunggah.

Saya telah membuat program Visual Studio C # dan terintegrasi dengan FiddlerCore. Saya menggunakan metode utilReplaceInRequest sesuai dokumentasi Fiddler:

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

Apa yang terjadi adalah utilReplaceInRequest "tampaknya" berfungsi karena variabel hasil disetel ke True beberapa kali saya memanggil utilReplaceInRequest. (Saya perlu mengganti beberapa string di body, jadi saya memanggil utilReplaceInRequest beberapa kali). Tetapi ketika saya memeriksa konten file sebenarnya di layanan cloud, itu adalah string asli. Tidak ada yang diganti. Saya bahkan mencoba memanggil session.GetRequestBodyAsString () setelah memanggil utilReplaceInRequest di FiddlerCore, dan melihat bahwa string memang telah "diubah" di body. Tapi "tubuh" itu tidak dikirim ke layanan cloud.

Tapi yang cukup menarik - ketika saya melakukan hal yang sama di Fiddler itu sendiri (sesuaikan Aturan dalam fungsi "fungsi statis OnBeforeRequest (oSession: Session) {}"), itu berfungsi, dan badan HTTP yang dimodifikasi sedang dikirim ke layanan awan !

Apakah ada beberapa opsi konfigurasi yang perlu saya atur (mungkin dalam program C # saya) agar FiddlerCore berfungsi seperti Fiddler?

Terima kasih.

Stan

Jawaban

BorislavIvanov Dec 14 2020 at 03:32

Anda dapat mencoba mengatur:

session.bBufferResponse = true;

seperti yang dijelaskan dalam demo FiddlerCore di sini .