Ivan Franco

Fiddler - redirigir requests a una instancia local

Fiddler es una herramienta muy útil para debuggear sistemas web. Fiddler, es un proxy, el cual nos permite revisar todos los request (y responses) que fueron enviados entre el cliente web y el servidor.

Más allá que con esa funcionalidad, nos puede ser suficiente para diagnosticar o encontrar algún problema en nuestro sistema. Existen situaciones donde necesitamos replicar un comportamiento en nuestras instancias locales para poder debuggear y obtener más información.

Para esos casos, existe una funcionalidad muy potente, la cual nos permite modificar el request antes de ser efectivamente ejecutado. Y de esta forma, poder cambiar la dirección de destino del request.

Para esto, lo único que hay que hacer es ir a la pestaña FiddlerScript en la mitad derecha de la pantalla.

FiddlerScript

Una vez que nos encontramos en la pestaña indicada, dentro de la clase Handlers, vamos a encontrar una función OnBeforeRequest, donde podemos agregar el siguiente código:

if (oSession.host == "api.prod.com")
{
    if (oSession.HTTPMethodIs("GET") || oSession.HTTPMethodIs("POST"))
    {
        oSession.host = oSession.host.Replace("api.prod.com", "localhost");
     }
} 

El lenguaje es JScript.NET, para aquellos que conocen C# lo van a encontrar muy similar.

Ahora bien, con esto simplemente estamos modificando el host del request, sin modificar el protocolo de comunicación.

Si necesitamos cambiar de https a http (porque nuestra instancia local así esta ejecutándose, podemos incluir lo siguiente.

oSession.fullUrl = "http" + oSession.fullUrl.Substring(oSession.fullUrl.IndexOf(':'));

Y de esta manera vamos a ser capaces de redirigir los request de la página productiva a nuestra api local sin necesidad de configurar (o mejor dicho, intentar) remote debugging en el servidor.