13

XMLDocument.Load(uri) メソッドを使用して基本的に XML ドキュメントを読み取るコードが少しありますが、これは正常に動作しますが、呼び出しがプロキシ経由で行われた場合はうまく動作しません。

誰かがプロキシを介してこの呼び出しを行う (または同じ効果を達成する) 方法を知っているかどうか疑問に思っていましたか?

4

6 に答える 6

14

これは私が最終的に使用したコードです:

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); 
于 2008-09-24T03:37:52.650 に答える
12

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);
于 2009-03-17T13:20:57.907 に答える
11

プロキシに資格情報を提供する必要がありますか?

その場合、これは役立つはずです:「ファイルから読み取るときにXmlResolverに認証クレデンシャルを提供する」 http://msdn.microsoft.com/en-us/library/aa720674.aspx

基本的に、あなたは...

  1. URLを使用してXmlTextReaderを作成します
  2. リーダーのXmlResolverのCredentialsプロパティを設定します
  3. XmlDocumentインスタンスを作成し、リーダーをLoadメソッドに渡します。
于 2008-09-24T01:54:21.543 に答える
6

プロキシを使用するようにXMLDocumentを構成することはできません。WebRequestまたはWebClientクラスを使用して、プロキシ経由でデータをロードし、取得した応答ストリームをXMLDocumentに渡すことができます。

また、XmlTextReaderクラスの使用を試みることもできます。これにより、ネットワーク資格情報を設定できます。詳細については、以下を参照してください。

ファイルから読み取るときにXmlResolverに認証クレデンシャルを提供する

于 2008-09-24T01:50:12.567 に答える
3

WebProxyとWebRequestを使用してxmlをダウンロードし、それを解析する必要があります。

于 2008-09-24T01:52:51.063 に答える
0

実際には、アプリの設定に保存するのではなく、Windows プロキシ構成を使用できます。これは現在標準になっていると思いますので、各プログラムでプロキシを構成する必要はありません。つまり、Chrome のプロキシの設定を見て、Windows にリダイレクトします。

IWebProxy wp = WebRequest.GetSystemWebProxy();                  
wp.Credentials = WebRequest.GetSystemWebProxy().Credentials;                    
WebClient wc = new WebClient();
wc.Proxy = wp;
于 2020-07-29T07:28:27.767 に答える