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" />
                    
Directory.Packages.props
<PackageReference Include="Commencis.Core.Http" />
                    
Project file
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
                    
#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
                    
Install as a Cake Addin
#tool nuget:?package=Commencis.Core.Http&version=1.0.1
                    
Install as a Cake Tool

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

  1. Register the HTTP client in your Program.cs or Startup.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")));
  1. Create your HTTP client interface:
public interface IYourHttpClient : IFusionClientWrapper
{
    // Your custom methods here
}
  1. Implement your HTTP client:
public class YourHttpClient : FusionClientWrapper, IYourHttpClient
{
    public YourHttpClient(IHttpClientFactory httpClientFactory) 
        : base(httpClientFactory)
    {
    }

    // Implement your custom methods
}
  1. 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 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.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 230 5/14/2025
1.0.0 228 5/14/2025