丢失连接后HttpClient不丢弃

时间:2013-12-02 18:36:55

标签: c# dotnet-httpclient

我有一个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连接,则不会抛出任何异常,并且代码将永远不会在代码块之外执行。如果客户端在下载过程中没有遇到任何连接问题,则代码可以正常工作。

有关为何会出现这种情况的任何见解?

0 个答案:

没有答案