IWebProxy policy = WebRequest.GetSystemWebProxy();
request.Proxy = policy;

Mantieni l'oggetto restituito come IWebProxy. Questo frammento riguarda codice esistente basato su WebRequest, non è una raccomandazione ad adottare quell'API obsoleta in una nuova applicazione.

WebProxy implementa l'interfaccia, ma non ogni oggetto che implementa l'interfaccia eredita da WebProxy. Un wrapper di sistema può quindi rifiutare la conversione prima che avvenga qualsiasi richiesta di rete. Un nome di classe privato di .NET Framework come WebProxyWrapperOpaque è un dettaglio implementativo, non un problema dell'endpoint proxy o dell'account.

Per decidere una rotta, chiama IsBypassed(destination) e GetProxy(destination) con l'URI reale di destinazione. Un bypass può restituire la destinazione stessa, e un criterio basato su PAC può scegliere un'altra rotta per un altro host.

Per l'autenticazione, IWebProxy espone già Credentials. Usa l'account e il metodo supportati senza convertire per raggiungere la proprietà.

Estrarre un singolo URI per costruire un WebProxy sostitutivo scarta il comportamento per destinazione del criterio originale. Fallo solo quando un endpoint fisso è la configurazione applicativa prevista, non come aggiramento di un errore di tipo.

Articoli correlati