我正在編寫一個旨在聯機和脫機工作的Windows Phone 8應用程序。要做到這一點,它需要能夠檢查互聯網連接。這沒問題,如果沒有連接,或者有連接,但如果用戶連接到一個wifi熱點,但他們沒有通過身份驗證,那麼我需要返回一個「無連接」狀態。但是,即使嘗試捕獲,似乎也無法使用WebClient或HttpWebRequest捕獲System.Net.WebException錯誤。我搜索瞭解決方案,但似乎沒有工作 - 任何幫助,將不勝感激。Windows Phone 8連接檢查WebClient拋出可怕System.Net.WebException
這裏是我的連接校驗碼:
public async Task<bool> tskbooCheckConnectionSimpleNoQueue()
{
bool booHasConnection = false;
bool isNetwork = NetworkInterface.GetIsNetworkAvailable();
if (!isNetwork)
{
booHasConnection = false;
IsolatedStorageSettings.ApplicationSettings["booHasConnection"] = false;
return booHasConnection;
}
else
{
//actually check connection
WebClient wcConnectionCheck = new WebClient();
string strData = "";
string strConnectionCheck = "https://urltocheckconnection.com/connectioncheckmethod";
try
{
strData = await wcConnectionCheck.DownloadStringTaskAsync(new Uri(strConnectionCheck)); //exception thrown here
if (strData.ToString().Contains("success"))
{
booHasConnection = true;
IsolatedStorageSettings.ApplicationSettings["booHasConnection"] = true;
return booHasConnection;
}
else
{
booHasConnection = false;
IsolatedStorageSettings.ApplicationSettings["booHasConnection"] = false;
return booHasConnection;
}
}
catch (WebException ex)
{
booHasConnection = false;
IsolatedStorageSettings.ApplicationSettings["booHasConnection"] = false;
return booHasConnection;
}
}
}
該代碼看起來對我來說很合適。你確定沒有其他的異常類型被拋出嗎? –
是的,如果你有一個連接,代碼工作正常,但如果它不能連接,那麼它會拋出System.Net.WebException「Not Found」。實際發生的情況是WiFi代理重定向任何流量,因此無法解析服務URL,因此無法找到。這很好,但我只需要能夠處理它! – James
你是否檢查過瘋狂的東西,比如你的catch中的'WebException'解析爲本地類型而不是'System.Net.WebException'? –