?id=792d9c4f-9409-4b75-ace6-25165d6d2ba0
Cómo configurar un proxy para acceder a servicios Web
por José M. Alarcón
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");
José Manuel Alarcón Aguín
Fundador de
campusMVP.es, el
proyecto de referencia en formación on-line para programadores en lengua española.
Autor de varios libros y cientos de artículos. Galardonado como
MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la
tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.