从网上获取数据时,如何确定我是否连接失败?
我正在使用GetBufferAsync,当将以太网电缆从计算机中拔出时会引发错误。
我找不到有关此错误的文档,并且我不知道这是否是最佳方法。
我正在加载一个最大60Kb的文本文件。数据不是很多。
我正在Visual Studio 2019中进行开发。
以下代码从www.google.com加载了一些数据,大部分为0。 断开以太网电缆时,在ReadBufferAsync行上引发异常。 我尝试捕获特定的异常:InvalidOperationException,HttpRequestException
错误:0x8002ee7(十进制12007)。
文字:找不到与此错误代码关联的文字。服务器名称或地址无法解析。
InnerException:null
MS文档https://docs.microsoft.com/en-us/windows/desktop/WinInet/wininet-errors不包括我遇到的错误,尽管我的异常在正确的范围内(请参阅https://docs.microsoft.com/en-us/windows/desktop/Debug/system-error-codes--12000-15999-)
using System;
using Windows.Storage.Streams;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.Web.Http;
namespace ReadBufferAsyncTest
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
this.Loaded += MyProgram_Loaded;
}
private async void MyProgram_Loaded(object sender, RoutedEventArgs e)
{
try
{
// Connecting to internet
var uriBing = new Uri("http://www.google.com");
var client = new HttpClient();
IBuffer morseBuffer = await client.GetBufferAsync(uriBing);
DataReader dataReader = DataReader.FromBuffer(morseBuffer);
byte[] morseBytes = new byte[morseBuffer.Length];
dataReader.ReadBytes(morseBytes);
}
catch(Exception ex)
{
return; // breakpoint goes here
}
}
}
}
我得到的错误(0x80072ee7)是预期的错误吗? 还有其他错误要寻找吗? 当文档有限时,处理错误的最佳方法是什么?
(其他说明:这是下载小文本文件的最佳方法吗?)
答案 0 :(得分:0)
如何确定我是否无法连接?
根据您的要求,您可以先检查互联网是否可用,然后再通过NetworkHelper
获取缓冲区。
// Detect if Internet can be reached
if (NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable)
{
}