2012-09-11 8 views
6

sto cercando di fare Fiddler lavoro con RestSharp strega utilizza System.Http.WebProxy, quindi voglio che sia impostato su localhost:8888 o 127.0.0.1:8888Come rendere System.Net.WebProxy non bypassare gli URL locali?

Ecco il codice:

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); 

Uscite: vero

MSDN afferma quanto segue:

Il metodo IsBypassed viene utilizzato per determinare se ignorare il server proxy quando si accede a una risorsa Internet.

Il BypassProxyOnLocal e bypasslist proprietà controllano il valore restituito del IsBypassed metodo.

IsBypassed rendimenti vero in presenza delle seguenti condizioni:

  • Se BypassProxyOnLocal è vero e ospite è un URI locale. Le richieste locali sono identificate dalla mancanza di un punto (.) Nell'URI, come in "http: // webserver /".

  • Se host corrisponde a un'espressione regolare in BypassList.

  • Se Indirizzo è nullo.

Tutte le altre condizioni di tornare falsa.

non capisco il motivo per cui nel mio caso restituisce vero, è presente un bug? Come farlo funzionare allora? Grazie!

risposta

6

Questo è hard-coded comportamento nell'attuazione della libreria client HTTP nel quadro .Net, rispecchiando il comportamento di WinInet prima di Internet Explorer 9.

Vedere Monitor traffic to localhost from IE or .NET dal sito web di Fiddler spiega come occuparsene.

+0

Come una lieve modifica a ciò che Fiddler suggerisce: se si utilizza 'oSession.hostname =" localhost "' allora manterrà il proprio numero di porta invece di cambiarlo in 8081. –

+0

(Notare invece l'uso di 'oSession.hostname' di 'oSession.host') –

Problemi correlati