A simple Async await call to download a file with Basic Authentication
A simple async await method to download a file using basic authentication. As this is Basic Auth you should only really use it with https:// calls otherwise the username & password will be sent over as plain Base64 string.
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
private static async Task DownloadFileUsingBasicAuth(string url, string saveFileAs, string username, string password)
{
HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = new System.Net.NetworkCredential(username, password);
HttpClient httpClient = new HttpClient(handler);
Uri uri = new Uri(url);
HttpResponseMessage responseMessage = await httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead);
if (responseMessage.StatusCode == HttpStatusCode.OK)
{
using (var fileStream = File.Create(saveFileAs))
{
using (var httpStream = await responseMessage.Content.ReadAsStreamAsync())
{
httpStream.CopyTo(fileStream);
fileStream.Flush();
}
}
}
}
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
private static async Task DownloadFileUsingBasicAuth(string url, string saveFileAs, string username, string password)
{
HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = new System.Net.NetworkCredential(username, password);
HttpClient httpClient = new HttpClient(handler);
Uri uri = new Uri(url);
HttpResponseMessage responseMessage = await httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead);
if (responseMessage.StatusCode == HttpStatusCode.OK)
{
using (var fileStream = File.Create(saveFileAs))
{
using (var httpStream = await responseMessage.Content.ReadAsStreamAsync())
{
httpStream.CopyTo(fileStream);
fileStream.Flush();
}
}
}
}
Comments
Post a Comment