Ho un codice che funziona bene quando ho un proxy Web definito in Internet Explorer. Tuttavia, se non è definito nessuno, non funziona. Voglio verificare se è definito un proxy. Come dovrei cambiare il codice qui sotto per farlo?Come verificare se un server proxy è configurato?
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;
}
Ad esempio, come posso scaricare i dati senza utilizzare un proxy?
UPDATE
ho cambiato il codice di seguito
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;
}
ottengo il seguente errore System.NullReferenceException was unhandled by user code
sulla linea di se dichiarazione.
UPDATE 2
Ho anche provato a cambiare questa linea:
if (!String.IsNullOrEmpty(WebProxy.GetDefaultProxy().Address.AbsoluteUri))
a
if (WebProxy.GetDefaultProxy().Address.AbsoluteUri != null)
ma ottengo questo errore:
System.NullReferenceException: Object reference not set to an instance of an object.
Qualche idea?
Senza un proxy: omettere 'wc.Proxy = wp;' fare il trucco? ("se non c'è proxy, non impostarlo") – Piskvor
Sapevi che WebProxy.GetDefaultProxy() è considerato obsoleto? È necessario utilizzare WebRequest.GetSystemWebProxy() o WebRequest.DefaultWebProxy. –
Ho aggiornato la mia domanda per utilizzare 'GetSystemWebProxy'. Hai ancora problemi, potresti dare un'occhiata? –