EonaCat.Testers/HttpClient/Program.cs

42 lines
2.0 KiB
C#

using EonaCat.HttpClient;
using EonaCat.HttpClient.Extensions;
using System.Globalization;
namespace EonaCat.Testers.HttpClient
{
public static class HttpClientTest
{
private const string Large_Json_file = "https://raw.githubusercontent.com/json-iterator/test-data/master/large-file.json";
public static async Task Main()
{
Console.WriteLine("Test");
var httpClient = new EonaCat.HttpClient.HttpClient(Large_Json_file);
httpClient.OnReadProgressChanged += HttpClient_OnReadProgressChanged;
httpClient.OnWriteProgressChanged += HttpClient_OnWriteProgressChanged;
var getRequest = httpClient.GetRequest();
var response = await getRequest.ExecuteAsync<List<Large_Json>>().ConfigureAwait(false);
Console.WriteLine($"We got {(response.HasResult ? response.Result.Count : 0)} results - elapsed: {response.Elapsed.Value}");
Console.WriteLine("Test2");
var httpClient2 = new EonaCat.HttpClient.HttpClient("https://google.com");
httpClient2.OnReadProgressChanged += HttpClient_OnReadProgressChanged;
httpClient2.OnWriteProgressChanged += HttpClient_OnWriteProgressChanged;
var getRequest2 = httpClient2.GetRequest();
var response2 = await getRequest2.ExecuteAsHttpResponseMessageAsync().ConfigureAwait(false);
Console.WriteLine($"We got {(response2.HasResult ? await response2.Result.Content.ReadAsStringWithProgressAsync("test", (x) => { Console.WriteLine($"{x.PercentageAsString}%"); }) : 0)} - elapsed: {response2.Elapsed.Value}");
}
private static void HttpClient_OnWriteProgressChanged(object? sender, ProgressArgs e)
{
Console.WriteLine($"WRITE: {e.Identifier} : {e.PercentageAsString}");
}
private static void HttpClient_OnReadProgressChanged(object? sender, ProgressArgs e)
{
Console.WriteLine($"READ: {e.Identifier} : {e.PercentageAsString}");
}
}
}