utilReplaceInRequest no reemplaza cadenas en el cuerpo de la solicitud HTTP en FiddlerCore

Dec 01 2020

utilReplaceInRequest no parece funcionar para mí en FiddlerCore.

Estoy cargando un archivo en un servicio en la nube (Microsoft Azure). Puedo ver que el cuerpo de la solicitud HTTP asociada contiene el contenido del archivo. Necesito reemplazar algunos de esos contenidos (por ejemplo, en el cuerpo de la solicitud HTTP) antes de que se cargue el archivo.

He creado un programa de Visual Studio C # y lo he integrado con FiddlerCore. Estoy usando el método utilReplaceInRequest según la documentación de Fiddler:

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

Lo que está sucediendo es que utilReplaceInRequest "parece" funcionar en el sentido de que la variable de resultado se establece en True las múltiples veces que llamo a utilReplaceInRequest. (Necesito reemplazar varias cadenas en el cuerpo, así que llamo a utilReplaceInRequest varias veces). Pero cuando verifico el contenido real del archivo en el servicio en la nube, son las cadenas originales. No se ha reemplazado nada. Incluso intenté invocar session.GetRequestBodyAsString () después de llamar a utilReplaceInRequest en FiddlerCore, y vi que las cadenas de hecho se han "cambiado" en el cuerpo. Pero ese "cuerpo" simplemente no se envía al servicio en la nube.

Pero curiosamente, cuando hago lo mismo en el propio Fiddler (personalizo las Reglas en la función "función estática OnBeforeRequest (oSession: Session) {}"), funciona y el cuerpo HTTP modificado se envía al servicio en la nube !

¿Hay alguna opción de configuración que deba configurar (quizás en mi programa C #) para que FiddlerCore funcione como Fiddler?

Gracias.

Stan

Respuestas

BorislavIvanov Dec 14 2020 at 03:32

Puede intentar configurar:

session.bBufferResponse = true;

como se describe en las demostraciones de FiddlerCore aquí .