我知道如何检查设备是否有可用的互联网连接是一个很大的讨论。
我尝试了 Ping、WebClient 和 HTTPClient。我还使用 Xamarin Essentials 和连接插件。
所有这些都在工作,只需向谷歌或您选择的服务器发出请求,您就会得到答案或不。您还可以将超时设置为 2 秒等。
但是现在我遇到了我已连接到 WIFI 但 WIFI 本身没有活动的互联网连接的情况。
所以我写的所有东西都不再起作用了。问题是超时将以某种方式被忽略。也许是 .net 中的错误?我不知道。
现在我发现了最后一件事:
try
{
var request = (HttpWebRequest)WebRequest.Create("https://www.google.com");
request.KeepAlive = false;
request.Timeout = 2000;
using (var response = (HttpWebResponse)await request.GetResponseAsync())
{
if (response.StatusCode == HttpStatusCode.OK)
{
//Connection to internet available
return true;
}
else
{
//Connection to internet not available
return false;
}
}
}
catch (WebException webEx)
{
if (webEx.Status == WebExceptionStatus.Timeout)
{
return false;
}
}
catch (Exception e)
{ …
Run Code Online (Sandbox Code Playgroud)