2008-09-24 4 views
13

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

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

ответ

11

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

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

В принципе, вы ...

  1. Создание XmlTextReader с использованием URL
  2. Задайте свойство Credentials для XmlResolver читателя
  3. Создайте экземпляр XmlDocument и передайте читателю метод Load.
6

Вы не можете настроить XMLDocument для использования прокси. Вы можете использовать класс WebRequest или WebClient для загрузки данных через прокси и передать полученный поток ответов в XMLDocument

Также вы можете попробовать использовать класс XmlTextReader. Он позволяет вам устанавливать сетевые учетные данные. Более подробную информацию см:

Supplying Authentication Credentials to XmlResolver when Reading from a File

3

Вы должны использовать WebProxy и WebRequest для загрузки XML, а затем разобрать его.

13

Это код, который я в конечном итоге с помощью: ответ

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

знакомства @ Скотт ... –

11

Используйте 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^