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