我有一些代码,在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;
}
例如,如果不使用代理,我该如何下载数据?
更新
我已将代码更改为以下内容。
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;
}
我在if语句行上遇到了以下错误:
System.NullReferenceException was unhandled by user code
。
更新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 left the buildingGetSystemWebProxy
。仍然有困难,你能看一下吗? - Mark Allison