2008-09-24 43 views
13

Tengo un código que básicamente lee un documento XML utilizando el método XMLDocument.Load (uri) que funciona bien, pero no funciona tan bien si la llamada se realiza a través de un proxy.XMLDocument.Load (url) a través de un proxy

Me preguntaba si alguien sabía de una forma de hacer esta llamada (o lograr el mismo efecto) a través de un proxy.

Respuesta

11

¿Tiene que proporcionar credenciales para el proxy?

Si es así, esto debería ayudar: "El suministro de las credenciales de autenticación a XmlResolver Cuando se lee desde un archivo" http://msdn.microsoft.com/en-us/library/aa720674.aspx

Básicamente, usted ...

  1. Crear XMLTextReader utilizando la URL
  2. Establezca la propiedad Credenciales del XmlResolver del lector
  3. Cree una instancia XmlDocument y pase el lector al método Load.
3

Es necesario utilizar WebProxy y WebRequest para descargar el xml, entonces analizarlo.

13

Este es el código que terminé usando: La respuesta de

WebProxy wp = new WebProxy(Settings.Default.ProxyAddress); 
wp.Credentials = new NetworkCredential(Settings.Default.ProxyUsername, Settings.Default.ProxyPassword); 
WebClient wc = new WebClient(); 
wc.Proxy = wp; 

MemoryStream ms = new MemoryStream(wc.DownloadData(url)); 
XmlTextReader rdr = new XmlTextReader(ms); 
return XDocument.Load(rdr); 
+3

Ver @ de Scott ... –

11

Uso lomaxx pero cambiar la corrección

MemoryStream ms = new MemoryStream(wc.DownloadData(url)); 
XmlTextReader rdr = new XmlTextReader(url); 

a

MemoryStream ms = new MemoryStream(wc.DownloadData(url)); 
XmlTextReader rdr = new XmlTextReader(ms); 
Cuestiones relacionadas