小编Ste*_*her的帖子

.net 或 Xamarin Internet 可用性检查当 WIFI 网络没有 Internet 连接时

我知道如何检查设备是否有可用的互联网连接是一个很大的讨论。

我尝试了 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)

.net android timeout ios xamarin

5
推荐指数
1
解决办法
1263
查看次数

标签 统计

.net ×1

android ×1

ios ×1

timeout ×1

xamarin ×1