XmlDocument.Загрузка (URL) через прокси-сервер

StackOverflow https://stackoverflow.com/questions/124932

  •  02-07-2019
  •  | 
  •  

Вопрос

У меня есть немного кода, который в основном считывает XML-документ с помощью XmlDocument .Метод Load (uri), который работает нормально, но работает не так хорошо, если вызов выполняется через прокси.

Мне было интересно, знает ли кто-нибудь о способе выполнить этот вызов (или добиться того же эффекта) через прокси?

Это было полезно?

Решение

Нужно ли вам предоставлять учетные данные прокси-серверу?

Если да, то это должно помочь:"Предоставление учетных данных для проверки подлинности XmlResolver при чтении из файла" http://msdn.microsoft.com/en-us/library/aa720674.aspx

По сути, ты...

  1. Создайте XmlTextReader, используя URL-адрес
  2. Установите свойство Credentials для XmlResolver читателя
  3. Создайте экземпляр 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, а затем проанализировать его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top