2012-09-11 19 views
6

estoy tratando de hacer Fiddler trabajo con RestSharp bruja utiliza System.Http.WebProxy, por lo que queremos que sea ajustado a localhost:8888 o 127.0.0.1:8888¿Cómo hacer que System.Net.WebProxy no omita las URL locales?

Aquí está el código:

var webProxy = new WebProxy(new Uri("http://127.0.0.1:8888")) 
    { 
     BypassProxyOnLocal = false 
    }; 

    var bypassed = webProxy.IsBypassed(new Uri("http://127.0.0.1")); 
    Console.WriteLine(bypassed); 

Salidas: cierto

MSDN indica lo siguiente:

El método IsBypassed se utiliza para determinar si se omite el servidor proxy al acceder a un recurso de Internet.

Las propiedades BypassProxyOnLocal y BypassList controlan el valor devuelto del método IsBypassed.

IsBypassed rendimientos cierto bajo cualquiera de las siguientes condiciones:

  • Si BypassProxyOnLocal es cierto y anfitrión es un URI local. Las solicitudes locales se identifican por la falta de un punto (.) En el URI, como en "http: // webserver /".

  • Si el host coincide con una expresión regular en BypassList.

  • Si la dirección es nula.

Todas las demás condiciones de volver falsa.

No entiendo por qué en mi caso devuelve cierto, es esto un error? ¿Cómo hacer que funcione entonces? ¡Gracias!

Respuesta

6

Ésta es no modificable comportamiento en la implementación de la biblioteca de cliente HTTP en el marco .Net, lo que refleja el comportamiento de WinInet antes de Internet Explorer 9.

Ver Monitor traffic to localhost from IE or .NET desde el sitio web de Fiddler explica cómo para lidiar con eso.

+0

Como una ligera modificación de lo que sugiere Fiddler: si usa 'oSession.hostname =" localhost "', mantendrá su número de puerto en lugar de cambiarlo a 8081. –

+0

(Tenga en cuenta el uso de 'oSession.hostname' en su lugar de 'oSession.host') –

Cuestiones relacionadas