FireflyHttp 2.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package FireflyHttp --version 2.1.0
                    
NuGet\Install-Package FireflyHttp -Version 2.1.0
                    
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="FireflyHttp" Version="2.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FireflyHttp" Version="2.1.0" />
                    
Directory.Packages.props
<PackageReference Include="FireflyHttp" />
                    
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 FireflyHttp --version 2.1.0
                    
#r "nuget: FireflyHttp, 2.1.0"
                    
#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 FireflyHttp@2.1.0
                    
#: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=FireflyHttp&version=2.1.0
                    
Install as a Cake Addin
#tool nuget:?package=FireflyHttp&version=2.1.0
                    
Install as a Cake Tool

📦 Package Name

FireflyHttp

FireflyHttp is a lightweight and easy-to-use C# HTTP request library inspired by Python's requests. It simplifies HTTP calls with minimal configuration and supports JSON and XML requests.

Installation

Install via NuGet:

dotnet add package FireflyHttp

How to use

using FireflyHttp;

GET Request

var response = await Firefly.Get("https://httpbin.org/get");
Console.WriteLine(response);

GET Request with Headers

var response = await Firefly.Get("https://httpbin.org/get", new { Authorization = "Bearer YOUR_TOKEN" });
Console.WriteLine(response);

POST Request (JSON)

var data = new { name = "Firefly", version = "1.0" };
var response = await Firefly.Post("https://httpbin.org/post", data);
Console.WriteLine(response);

PUT Request (JSON)

var data = new { name = "Firefly", version = "2.0" };
var response = await Firefly.Put("https://httpbin.org/put", data);
Console.WriteLine(response);

DELETE Request

var response = await Firefly.Delete("https://httpbin.org/delete");
Console.WriteLine(response);

POST Request (XML)

// using raw XML string payload
var data = "<ExampleModel><Id>1</Id><Name>Firefly XML</Name></ExampleModel>";
var response = await Firefly.PostXml("https://httpbin.org/post", data);
Console.WriteLine(response);

// using object to serialize to XML
var data = new ExampleModel { Id = 1, Name = "Firefly XML" };
var response = await Firefly.PostXml("https://httpbin.org/post", data);
Console.WriteLine(response);

Simplified JSON Call With Custome Response Type

var client = new FireflyClient("https://api.example.com");
var result = await client.SendJson<YourResponseType>(
HttpMethod.Post,
"/some-endpoint",
new MyRequestType { Property = "value" });

WebSocket Simple Connection

var webSocket = await FireflyWebSocket.ConnectAsync("wss://example.com/socket");
await webSocket.SendAsync("Hello from Firefly!"); // for text based events
await webSocket.SendBinaryAsync(new byte[] { 1, 2, 3, 4 }); //for binary based events

// event handling for incoming Text, Binary & Errors
webSocket.OnMessageReceived += text => Console.WriteLine($"Received: {text}");
webSocket.OnBinaryReceived += data => Console.WriteLine($"Received: {data}");
webSocket.OnError += ex => Console.WriteLine($"Error: {ex.Message}");

Features

✔️ Simple and clean API for making HTTP requests. ✔️ Supports JSON and XML payloads. ✔️ Custom headers support. ✔️ Configurable request timeout. ✔️ Logging support. ✔️ WebSocket real-time events communications.

License

MIT License

Changelog

v1.1.0

  • Support BaseAddress so users can configure it once instead of repeating full URLs.
  • Support default headers to avoid setting them manually for every request.
  • Change headers input parameter to Dictionary<string, string> for better usability.

v1.2.0

  • Added support for MultipartFormDataContent.
  • Improved error handling.

v1.3.0

  • Added DownloadFileAsStream for handling stream response.
  • Support automatic response deserialization (JSON & XML)
  • Improved request logging.
  • Optimized request handling for performance improvements.

v2.0.0

  • Added FireflyWebSocket for real-time (bi-directional) event communication with automatic reconnection.
  • Handles text and binary events.
  • Added optional logging support.

v2.1.0

  • Introduces update to Serializes your request object as JSON
  • Sets Content-Type: application/json
  • Deserializes the API response to YourResponseType
  • Json and XML support SendRequestXml<T>() was introduced in v1.3.0 and still fully supported.
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 (1)

Showing the top 1 NuGet packages that depend on FireflyHttp:

Package Downloads
FireflyTester

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.2.0 339 6/12/2025
2.1.0 213 4/18/2025
2.0.0 142 3/29/2025
1.3.0 204 3/10/2025
1.2.0 259 3/3/2025
1.1.0 162 2/22/2025
1.0.1 244 2/10/2025
1.0.0 197 2/10/2025

FireflyHttp v2.1.0 - JSON POST Experience Improvements

- Introduced a simpler, more expressive method for JSON-based POST requests.
- Added support for customizable response type deserialization.
- Improves upon v1.3.0 with more intuitive handling of request payloads and typed responses.

This updates maintains full compatibility with previous versions—no breaking changes introduced
For implementation examples, checkout https://github.com/rocklessg/FireflyHttp/tree/main/FireflyTester