Internet Explorerで定義されたWebプロキシがあるときにうまく動作するコードがあります。ただし、定義されていない場合は機能しません。プロキシが定義されているかどうか確認したいこれを行うには、以下のコードをどのように変更しますか?プロキシサーバーが設定されているかどうかを確認する方法は?
public DataTable GetCurrentFxPrices(string url)
{
WebProxy wp = new WebProxy(WebProxy.GetDefaultProxy().Address.AbsoluteUri, true);
wp.Credentials = CredentialCache.DefaultCredentials;
WebClient wc = new WebClient();
wc.Proxy = wp;
MemoryStream ms = new MemoryStream(wc.DownloadData(url));
DataSet ds = new DataSet("fxPrices");
ds.ReadXml(ms);
DataTable dt = ds.Tables["Rate"];
int i = dt.Rows.Count;
return dt;
}
たとえば、プロキシを使用せずにデータをダウンロードするにはどうすればよいですか?
UPDATE
私は、if文の行に次のエラーSystem.NullReferenceException was unhandled by user code
を取得するには、次の
public DataTable GetCurrentFxPrices(string url)
{
WebClient wc = new WebClient();
if (!String.IsNullOrEmpty(WebProxy.GetDefaultProxy().Address.AbsoluteUri))
{
WebProxy wp = new WebProxy(WebProxy.GetDefaultProxy().Address.AbsoluteUri, true);
wp.Credentials = CredentialCache.DefaultCredentials;
wc.Proxy = wp;
}
MemoryStream ms = new MemoryStream(wc.DownloadData(url));
DataSet ds = new DataSet("fxPrices");
ds.ReadXml(ms);
DataTable dt = ds.Tables["Rate"];
int i = dt.Rows.Count;
return dt;
}
にコードを変更しました。
UPDATE 2
私も、この行を変更しようとしました:
if (!String.IsNullOrEmpty(WebProxy.GetDefaultProxy().Address.AbsoluteUri))
if (WebProxy.GetDefaultProxy().Address.AbsoluteUri != null)
に私はこのエラーを取得:
にSystem.NullReferenceException: Object reference not set to an instance of an object.
プロキシなし: 'wc.Proxy = wp;'を省略すると、そのトリックを行いますか? ( "プロキシがない場合は設定しないでください") – Piskvor
WebProxy.GetDefaultProxy()は廃止されましたか? WebRequest.GetSystemWebProxy()またはWebRequest.DefaultWebProxyを代わりに使用する必要があります。 –
私は 'GetSystemWebProxy'を使うように質問を更新しました。まだ問題がある、あなたは見てみることができますか? –