mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Use HttpClient in DownloadFileAsync function
This commit is contained in:
parent
d32a050db7
commit
1c29fbe022
3 changed files with 36 additions and 31 deletions
|
@ -618,24 +618,26 @@ public static string GetFileNameFromWebServer(string url)
|
||||||
return fileName;
|
return fileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DownloadFile(string url, string filePath)
|
public static async Task DownloadFileAsync(string url, string filePath)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(url) && !string.IsNullOrEmpty(filePath))
|
if (!string.IsNullOrEmpty(url) && !string.IsNullOrEmpty(filePath))
|
||||||
{
|
{
|
||||||
FileHelpers.CreateDirectoryFromFilePath(filePath);
|
FileHelpers.CreateDirectoryFromFilePath(filePath);
|
||||||
|
|
||||||
using (WebClient wc = new WebClient())
|
HttpClient client = HttpClientFactory.Create();
|
||||||
{
|
|
||||||
wc.Headers.Add(HttpRequestHeader.UserAgent, ShareXResources.UserAgent);
|
|
||||||
wc.Proxy = HelpersOptions.CurrentProxy.GetWebProxy();
|
|
||||||
wc.DownloadFile(url, filePath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static async Task DownloadFileAsync(string url, string filePath)
|
using (HttpResponseMessage responseMessage = await client.GetAsync(url))
|
||||||
{
|
{
|
||||||
await Task.Run(() => DownloadFile(url, filePath));
|
if (responseMessage.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
using (Stream stream = await responseMessage.Content.ReadAsStreamAsync())
|
||||||
|
using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
|
||||||
|
{
|
||||||
|
await stream.CopyToAsync(fileStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<string> DownloadStringAsync(string url)
|
public static async Task<string> DownloadStringAsync(string url)
|
||||||
|
@ -662,6 +664,8 @@ public static async Task<Bitmap> DownloadImageAsync(string url)
|
||||||
{
|
{
|
||||||
Bitmap bmp = null;
|
Bitmap bmp = null;
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(url))
|
||||||
|
{
|
||||||
HttpClient client = HttpClientFactory.Create();
|
HttpClient client = HttpClientFactory.Create();
|
||||||
|
|
||||||
using (HttpResponseMessage responseMessage = await client.GetAsync(url))
|
using (HttpResponseMessage responseMessage = await client.GetAsync(url))
|
||||||
|
@ -682,15 +686,16 @@ public static async Task<Bitmap> DownloadImageAsync(string url)
|
||||||
if (supportedImageTypes.Contains(mediaType, StringComparer.OrdinalIgnoreCase))
|
if (supportedImageTypes.Contains(mediaType, StringComparer.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
byte[] data = await responseMessage.Content.ReadAsByteArrayAsync();
|
byte[] data = await responseMessage.Content.ReadAsByteArrayAsync();
|
||||||
MemoryStream ms = new MemoryStream(data);
|
MemoryStream memoryStream = new MemoryStream(data);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
bmp = new Bitmap(ms);
|
bmp = new Bitmap(memoryStream);
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
ms.Dispose();
|
memoryStream.Dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -425,7 +425,7 @@ private static void DownloadFFmpeg()
|
||||||
string filePath = Path.Combine(OutputDir, fileName);
|
string filePath = Path.Combine(OutputDir, fileName);
|
||||||
|
|
||||||
Console.WriteLine("Downloading: " + FFmpegDownloadURL);
|
Console.WriteLine("Downloading: " + FFmpegDownloadURL);
|
||||||
URLHelpers.DownloadFile(FFmpegDownloadURL, filePath);
|
URLHelpers.DownloadFileAsync(FFmpegDownloadURL, filePath).GetAwaiter().GetResult();
|
||||||
|
|
||||||
Console.WriteLine("Extracting: " + filePath);
|
Console.WriteLine("Extracting: " + filePath);
|
||||||
ZipManager.Extract(filePath, OutputDir, false, entry => entry.Name.Equals("ffmpeg.exe", StringComparison.OrdinalIgnoreCase));
|
ZipManager.Extract(filePath, OutputDir, false, entry => entry.Name.Equals("ffmpeg.exe", StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
|
@ -1092,7 +1092,7 @@ private bool DownloadFromURL(bool upload)
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
URLHelpers.DownloadFile(url, Info.FilePath);
|
URLHelpers.DownloadFileAsync(url, Info.FilePath).GetAwaiter().GetResult();
|
||||||
|
|
||||||
if (upload)
|
if (upload)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue