A ver, cuesti├│n peliaguda...

En progrmaci├│n COM tradicional lo que se sol├şa utilizar a la hora de conectar con un recurso Web mediante HTTP, fuera ├ęste una p├ígina o un servicio Web, se sol├şa emplear la biblioteca WinHTTP o bien la clase que a tal efecto proporcionaban las bibliotecas MSXML. En ambos casos si la conectividad se obten├şa a trav├ęs de un Proxy era necesario configurarlo usando una utilidad externa de l├şnea de comandos, lo cual era un verdadero problema en distribuciones grandes o que deb├şamos hacer manualmente. No digamos si la aplicaci┬┤no era en un servidor Web al que s├│lo ten├şamos acceso mediante FTP.

Con .NET la vida es mucho m├ís f├ícil, como ya es sabido. As├ş, por ejemplo, cuando vamos a consumir un servicio Web desde una aplicaci├│n .NET, al a├▒adir una referencia Web se crea una clase que nos abstrae de la complejidad de llamar a los m├ętodos remotos y gestionar las comunicaciones HTTP. Esta clase hereda de SoapHttpClientProtocol, que a su vez hereda de HttpWebClientProtocol. ├ësta dispone de una propiedad llamada Proxy del tipo System.Net.IWebProxy, que nos permite especificar la informaci├│n del proxy a utilizar.

De este modo, si necesitamos especificar información sobre un Proxy para acceder a la Web basta con escribir código análogo al siguiente:

string DireccionDelProxy = "10.0.0.80";  //La URL o dirección IP del servidor proxy
int PuertoDelProxy = 8080;   //Puerto por el que escucha el proxy
//Se crea una instancia del objeto proxy
System.Net.WebProxy miProxy = new System.Net.WebProxy(DireccionDelProxy, PuertoDelProxy);
//y se asigna al envoltorio del servicio Web (o similar)
miServicio.Proxy = miProxy;

Como vemos muy sencillo.

Si adem├ís fuese necesario utilizar unas credenciales (nombre + clave) para poder hacer uso del Proxy s├│lo tenemos que crear una nueva instancia de la clase System.Net.NetworkCredentials y asignarla a la propiedad Credentials del proxy, as├ş:

miProxy.Credentials = new System.Net.Credentials("Usuario", "contrase├▒a", "dominio");

 

💪🏻 ┬┐Este post te ha ayudado?, ┬┐has aprendido algo nuevo?
Pues NO te pido que me invites a un caf├ę... Te pido algo m├ís f├ícil y mucho mejor

Escrito por un humano, no por una IA