Vinicius Quaiato

{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}

HttpWebRequest usando proxy


Estes dias fiz uma pequena aplicação ASP.NET MVC e uma das features era fazer um parser simples de uma página da Bovespa para obter o valor de uma cotação. A saída simples foi realizar um HttpWebRequest e tratar o resultado.

O problema é que localmente tudo funcionava(cool ¬¬). Em um IIS local tudo funcionava. Mas no ambiente do cliente nada acontecia(novidade hein?!). Eu também estava sem acesso na máquina do cliente. Não entendia por que nada acontecia, o erro não era muito descritivo (claro que não deixei o erro estourar na página :P). E o cliente acessando a url da Bovespa diretamente conseguia acesso. Fazendo um brainstorm(estilo House MD) com o Juan Lopes ele disse que talvez poderia ser o proxy impedindo o WebRequest. Dito e feito("We are Juan Lopes"). Ao consultar o cliente eles possuíam um proxy que eu não sabia.

Resultado: configurar o proxy no HttpWebRequest.

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://site.com.br");
req.Proxy = new WebProxy("proxy.uri.com.br", "8080");
    

Simples não? Basta configurar a propriedade Proxy do objeto HttpWebRequest com um objeto WebProxy.O WebProxy permite ainda configurar as credenciais que devem ser utilizadas, é bastante simples:

var webproxy = new WebProxy("proxy.uri.com.br", "8080");
webProxy.Credentials = new NetworkCredential("usuario","senha","domain");
    

É isso, foi só liberar essa configuração e tudo funcionou perfeitamente.Dica: Eu não deixei as configurações de proxy chumbadas no código, criei uma interface de configuração de proxy, desta forma consigo testar tudo sem ficar dependendo de magic string ou web.config.

Abraços,

Vinicius Quaiato.

Voltar

Fork me on GitHub