Isso é facilmente alcançado de forma programática, em seu código, ou declarativamente no web.config ou no app.config.
Você pode criar um proxy de maneira programática como:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
WebProxy myproxy = new WebProxy("[your proxy address]", [your proxy port number]);
myproxy.BypassProxyOnLocal = false;
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Você está basicamente atribuindo o WebProxy
objeto à propriedade request
do objeto proxy
. Isso request
então usará o que proxy
você definir.
Para obter a mesma coisa declarativamente, você pode fazer o seguinte:
<system.net>
<defaultProxy>
<proxy
proxyaddress="http://[your proxy address and port number]"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
dentro do seu web.config ou app.config. Isso define um proxy padrão que todas as solicitações http usarão. Dependendo exatamente do que você precisa alcançar, você pode ou não exigir alguns dos atributos adicionais do elemento defaultProxy / proxy , portanto, consulte a documentação para eles.
BypassProxyOnLocal
propriedade como True (se necessário).Se você estiver usando
WebClient
, ele tem uma propriedade Proxy que você pode usar.Como outros mencionaram, existem várias maneiras de automatizar a detecção / uso de configuração de proxy
Web.Config:
Uso da classe WebProxy conforme descrito neste artigo .
Você também pode configurar as configurações de proxy diretamente (configuração ou código) e seu aplicativo irá usá-las.
Web.Config:
Código:
fonte
Experimente este código. Ligue antes de fazer qualquer solicitação http. O código usará o proxy das configurações do Internet Explorer - uma coisa, porém, eu uso
proxy.Credentials = ....
porque meu servidor proxy é um servidor de aceleração da Internet autenticado por NTLM. Dê um gênio.fonte
WebProxy.GetDefaultProxy
está obsoleto desde o Framework 4.5 e este método retorna nulo. É melhor pensar antes de usarCredentialCache.DefaultNetworkCredentials
. Se você colocou algo no CredentialCache e seu proxy exige essas credenciais, então deve funcionar. Caso contrário, não ajudará.Se você deseja que o aplicativo use o proxy padrão do sistema, adicione-o ao Application.exe.config (em que application.exe é o nome do seu aplicativo):
Mais detalhes podem ser encontrados no artigo do MSDN em System.Net
fonte
Este one-liner funciona para mim:
CredentialCache.DefaultNetWorkCredentials
são as configurações de proxy definidas no Internet Explorer.WebRequest.DefaultWebProxy.Credentials
é usado para toda a conectividade com a Internet no aplicativo.fonte
O código de Foole funcionou perfeitamente para mim, mas no .NET 4.0, não se esqueça de verificar se Proxy é NULL, o que significa nenhum proxy configurado (fora do ambiente corporativo)
Então aqui está o código que resolveu meu problema com nosso proxy corporativo
fonte
Este código funcionou para mim:
fonte
A detecção automática de proxy é um processo pelo qual um servidor proxy da Web é identificado pelo sistema e usado para enviar solicitações em nome do cliente. Esse recurso também é conhecido como Web Proxy Auto-Discovery (WPAD). Quando a detecção automática de proxy está ativada, o sistema tenta localizar um script de configuração de proxy que é responsável por retornar o conjunto de proxies que podem ser usados para a solicitação.
http://msdn.microsoft.com/en-us/library/fze2ytx2.aspx
fonte
fonte
Vou usar um exemplo para adicionar às respostas acima.
Tive problemas de proxy ao tentar instalar pacotes por meio do Web Platform Installer
Isso também usa um arquivo de configuração que é WebPlatformInstaller.exe.config
Eu tentei as edições sugeridas neste fórum IIS que é
e
Nenhum deles funcionou.
O que funcionou para mim foi isso -
O módulo precisava ser registrado no Web Platform Installer para poder ser usado.
fonte