我有一段代码基本上使用XMLDocument.Load(uri)方法读取XML文档,该方法工作正常,但如果通过调用一个代理。XMLDocument.Load(url)通过代理
我想知道是否有人知道通过代理进行此调用(或达到相同效果)的方式?
我有一段代码基本上使用XMLDocument.Load(uri)方法读取XML文档,该方法工作正常,但如果通过调用一个代理。XMLDocument.Load(url)通过代理
我想知道是否有人知道通过代理进行此调用(或达到相同效果)的方式?
您是否需要向代理提供凭证?
如果是的话,这应该帮助: http://msdn.microsoft.com/en-us/library/aa720674.aspx
基本上 “从文件读取时供应身份验证凭据的XmlResolver” 你......
您无法配置XMLDocument以使用代理。您可以使用WebRequest或WebClient类通过代理加载数据并将获得的响应流传递给XMLDocument
也可以尝试使用XmlTextReader类。它允许您设置网络凭据。有关详细信息,请参阅:
Supplying Authentication Credentials to XmlResolver when Reading from a File
您需要使用WebProxy和WebRequest的下载XML,然后解析它。
这是我最后使用的代码:
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);
使用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);
见@斯科特的校... – 2011-02-22 20:39:54