我有一个Windows应用商店应用,我需要在其中下载几兆字节的文件。
我正在尝试使用HttpClient。
以下是代码的简化:
using (var httpClient = new HttpClient())
{
var request =
await httpClient.SendAsync(
new HttpRequestMessage(
HttpMethod.Get,
"http://openpandora.info:8080/Battlefield%204%20-%20Fishing%20in%20Baku%20-%20Xbox%20One.mp4"),
HttpCompletionOption.ResponseHeadersRead);
var outputFile =
await
ApplicationData.Current.LocalFolder.CreateFileAsync(
"test.data",
CreationCollisionOption.ReplaceExisting);
using (var outputStream = await outputFile.OpenStreamForWriteAsync())
{
await request.Content.CopyToAsync(outputStream);
}
}
此处提供的示例代码是下载2GB文件以供说明。
问题如下。如果客户端在启动应用程序时没有Internet连接,则代码会按预期引发异常。但是,如果客户端在下载运行时丢失了Internet连接,则不会抛出任何异常,并且代码将永远不会在代码块之外执行。如果客户端在下载过程中没有遇到任何连接问题,则代码可以正常工作。
有关为何会出现这种情况的任何见解?