XMLDocument.Load(uri) メソッドを使用して基本的に 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);
プロキシに資格情報を提供する必要がありますか?
その場合、これは役立つはずです:「ファイルから読み取るときにXmlResolverに認証クレデンシャルを提供する」 http://msdn.microsoft.com/en-us/library/aa720674.aspx
基本的に、あなたは...
プロキシを使用するようにXMLDocumentを構成することはできません。WebRequestまたはWebClientクラスを使用して、プロキシ経由でデータをロードし、取得した応答ストリームをXMLDocumentに渡すことができます。
また、XmlTextReaderクラスの使用を試みることもできます。これにより、ネットワーク資格情報を設定できます。詳細については、以下を参照してください。
WebProxyとWebRequestを使用してxmlをダウンロードし、それを解析する必要があります。
実際には、アプリの設定に保存するのではなく、Windows プロキシ構成を使用できます。これは現在標準になっていると思いますので、各プログラムでプロキシを構成する必要はありません。つまり、Chrome のプロキシの設定を見て、Windows にリダイレクトします。
IWebProxy wp = WebRequest.GetSystemWebProxy();
wp.Credentials = WebRequest.GetSystemWebProxy().Credentials;
WebClient wc = new WebClient();
wc.Proxy = wp;