Commencis.Core.Http
1.0.1
dotnet add package Commencis.Core.Http --version 1.0.1
NuGet\Install-Package Commencis.Core.Http -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Commencis.Core.Http" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Commencis.Core.Http" Version="1.0.1" />
<PackageReference Include="Commencis.Core.Http" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Commencis.Core.Http --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Commencis.Core.Http, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Commencis.Core.Http@1.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Commencis.Core.Http&version=1.0.1
#tool nuget:?package=Commencis.Core.Http&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Commencis.Core.Http
A powerful HTTP client wrapper library for .NET applications that provides retry mechanism with Polly and gzip compression support.
Features
- 🚀 HTTP client wrapper with retry mechanism
- 🔄 Polly integration for resilient HTTP requests
- 📦 Gzip compression support
- 🛠️ Easy to configure and use
- 🔍 Detailed logging support
Installation
dotnet add package Commencis.Core.Http
Quick Start
- Register the HTTP client in your
Program.cs
orStartup.cs
:
using Commencis.Core.Http;
using Commencis.Core.Http.Base;
using System.Text.Json;
// Configure services
builder.Services.RegisterFusionHttpClient<IYourHttpClient, YourHttpClient>(
new FusionClientOptions.Builder()
.WithRetryPolicy(new RetryPolicyOptions(2, TimeSpan.FromSeconds(90)))
.WithJsonSerializerOptions(new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
})
.Build(new Uri("https://api.example.com")));
- Create your HTTP client interface:
public interface IYourHttpClient : IFusionClientWrapper
{
// Your custom methods here
}
- Implement your HTTP client:
public class YourHttpClient : FusionClientWrapper, IYourHttpClient
{
public YourHttpClient(IHttpClientFactory httpClientFactory)
: base(httpClientFactory)
{
}
// Implement your custom methods
}
- Use in your services:
public class YourService
{
private readonly IYourHttpClient _httpClient;
public YourService(IYourHttpClient httpClient)
{
_httpClient = httpClient;
}
public async Task<YourModel> GetDataAsync()
{
return await _httpClient.GetAsync<YourModel>("api/endpoint");
}
}
Configuration Options
Retry Policy
var retryPolicy = new RetryPolicyOptions(
retryCount: 2, // Number of retries
retryWaitDuration: TimeSpan.FromSeconds(90) // Wait duration between retries
);
JSON Serialization
var jsonOptions = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
PropertyNameCaseInsensitive = true
};
License
This project is licensed under the MIT License - see the LICENSE file for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Microsoft.Extensions.DependencyInjection (>= 8.0.1)
- Microsoft.Extensions.Http.Polly (>= 8.0.14)
- Microsoft.Extensions.Logging (>= 8.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.