XMLDocument.Load(url) через прокси-сервер
У меня есть немного кода, который в основном читает XML-документ, используя метод XMLDocument.Load(uri), который отлично работает, но не работает так хорошо, если вызов выполняется через прокси.
Мне было интересно, знает ли кто-нибудь о способе сделать этот вызов (или добиться того же эффекта) через прокси?
Ответы
Ответ 1
Вам нужно предоставить учетные данные прокси?
Если это так, это должно помочь:
"Поставка учетных данных аутентификации в XmlResolver при чтении из файла"
http://msdn.microsoft.com/en-us/library/aa720674.aspx
В принципе, вы...
- Создайте XmlTextReader, используя URL
- Задайте свойство Credentials для читателя XmlResolver
- Создайте экземпляр XmlDocument и передайте читателю метод Load.
Ответ 2
Это код, который я закончил, используя:
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
Используйте lomaxx, но измените
MemoryStream ms = new MemoryStream(wc.DownloadData(url));
XmlTextReader rdr = new XmlTextReader(url);
к
MemoryStream ms = new MemoryStream(wc.DownloadData(url));
XmlTextReader rdr = new XmlTextReader(ms);
Ответ 4
Вы не можете настроить XMLDocument для использования прокси. Вы можете использовать класс WebRequest или WebClient для загрузки данных через прокси и передать полученный поток ответов в XMLDocument
Также вы можете попробовать использовать класс XmlTextReader. Он позволяет вам устанавливать сетевые учетные данные. Подробнее см.:
Предоставление учетных данных аутентификации XmlResolver при чтении из файла
Ответ 5
Вам нужно использовать WebProxy и WebRequest для загрузки xml, а затем проанализировать его.