Question

J'ai un peu de code qui lit essentiellement un document XML à l'aide de la méthode XMLDocument.Load (uri), qui fonctionne correctement, mais ne fonctionne pas aussi bien si l'appel est effectué via un proxy.

Je me demandais si quelqu'un connaissait un moyen de passer cet appel (ou d'obtenir le même effet) par le biais d'un proxy?

Était-ce utile?

La solution

Devez-vous fournir des informations d'identification au proxy?

Si oui, cela devrait aider: "Fournir des informations d'authentification à XmlResolver lors de la lecture d'un fichier" http://msdn.microsoft.com/en-us/library/aa720674.aspx

En gros, vous ...

  1. Créer un XmlTextReader en utilisant l'URL
  2. Définissez la propriété Credentials du lecteur XmlResolver du lecteur
  3. Créez une instance XmlDocument et transmettez le lecteur à la méthode Load.

Autres conseils

C’est le code que j’ai fini par utiliser:

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); 

Utilisez la réponse de lomaxx mais changez

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

à

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

Vous ne pouvez pas configurer XMLDocument pour utiliser un proxy. Vous pouvez utiliser la classe WebRequest ou WebClient pour charger des données via un proxy et transmettre le flux de réponse obtenu à XMLDocument

.

Vous pouvez également essayer d'utiliser la classe XmlTextReader. Il vous permet de définir des informations d'identification réseau. Pour plus de détails, voir:

Fourniture des informations d'authentification à XmlResolver lors de la lecture à partir d'un fichier

Vous devez utiliser WebProxy et WebRequest pour télécharger le fichier XML, puis l’analyser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top