2017-08-30 504 views
3

在.Net 4.0中我使用WebClient从URL下载文件并将它们保存在本地驱动器中。但是我无法在.Net Core中实现同样的功能。在.Net Core中将文件从url下载到本地设备

任何人都可以帮我解决这个问题吗?

+0

你确定asp.net-core-mvc是正确的标签吗?从你的问题来看,你似乎在谈论客户端软件。无论哪种方式:如果你想下载文件,使用'HttpClient'。 – jAC

回答

4

WebClient不适用于.NET Core。的HttpClientSystem.Net.Http的使用是强制性的,因此:

using System.Net.Http; 
using System.Threading.Tasks; 
... 
public static async Task<byte[]> DownloadFile(string url) 
{ 
    using (var client = new HttpClient()) 
    { 

     using (var result = await client.GetAsync(url)) 
     { 
      if (result.IsSuccessStatusCode) 
      { 
       return await result.Content.ReadAsByteArrayAsync(); 
      } 

     } 
    } 
    return null; 
} 
0

您可以使用HttpClient从System.Net.Http。我建议使用.NET Core 2.0。

public async Task<bool> Download() 
{ 
     var client = new HttpClient(); 

     var response = await client.GetAsync("https://github.com/twbs/bootstrap/releases/download/v4.0.0-beta/bootstrap-4.0.0-beta-dist.zip"); 

     using(var fs = new FileStream(@"c:\_data\bootstrap-4.0.0-beta-dist.zip", FileMode.Create)) 
     { 
      await response.Content.ReadAsStreamAsync().Result.CopyToAsync(fs); 
     } 

     return true; 
} 
相关问题