HttpInspector.AspNetCore 1.6.0

dotnet add package HttpInspector.AspNetCore --version 1.6.0
                    
NuGet\Install-Package HttpInspector.AspNetCore -Version 1.6.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="HttpInspector.AspNetCore" Version="1.6.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="HttpInspector.AspNetCore" Version="1.6.0" />
                    
Directory.Packages.props
<PackageReference Include="HttpInspector.AspNetCore" />
                    
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 HttpInspector.AspNetCore --version 1.6.0
                    
#r "nuget: HttpInspector.AspNetCore, 1.6.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 HttpInspector.AspNetCore@1.6.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=HttpInspector.AspNetCore&version=1.6.0
                    
Install as a Cake Addin
#tool nuget:?package=HttpInspector.AspNetCore&version=1.6.0
                    
Install as a Cake Tool

HttpInspector.AspNetCore

NuGet Publish NuGet

A Zero-Config Live HTTP Inspector for ASP.NET Core

HttpInspector.AspNetCore provides a built-in, real-time view of incoming and outgoing HTTP traffic inside any ASP.NET Core application.
It captures the complete request lifecycle and exposes it through a polished, embedded dashboard ideal for development, testing, QA, CI pipelines, and microservice debugging.

It is not a replacement for ELK, Seq, or Application Insights.
Instead, it fills the gap between “no visibility at all” and “full observability stack,” and does so with almost no setup.


💡 Philosophy

HttpInspector focuses on being:

  • Fast to enable
  • Effortless to use
  • Powerful for debugging
  • Zero-infrastructure
  • In-app and self-contained

It provides immediate clarity into what the API is doing right now, especially in complex request chains — all without the overhead of full observability stacks.


🎮 Live Demo

See HttpInspector in action:

👉 Live HttpInspector demo

Experience the live dashboard with:

  • Real-time HTTP traffic monitoring
  • Request/response inspection
  • Outgoing HTTP request tracking
  • Interactive request replay & editing
  • All features running in a live ASP.NET Core application

Try triggering some API calls and watch them appear instantly in the dashboard!


🚀 Quick Start

Enable HttpInspector with two lines:

var builder = WebApplication.CreateBuilder(args);

#if DEBUG
builder.Services.AddHttpInspector();
#endif

var app = builder.Build();

#if DEBUG
app.UseHttpInspector();
#endif

app.Run();

🖼 Dashboard Preview

  1. Install the NuGet package:
    dotnet add package HttpInspector.AspNetCore --version 1.6.0
    
  2. Use the Quick Start Guide to set up the package in your ASP.NET project
  3. Open the dashboard:
http://localhost:<port>/http-inspector

Dashboard Preview


✨ Features

🎛 Real-time visual dashboard

Access /http-inspector to see:

  • Live stream of captured HTTP traffic
  • Expandable request/response panels
  • Syntax-highlighted JSON bodies
  • Duration bars & status color coding
  • Free-text, method, and status filters
  • Smooth, responsive UI designed for developers
  • Supports static time ranges as well as real-time updates

Time Ranges


🔗 Outgoing HTTP request tracking

Automatically captures all HttpClient calls triggered during request processing.

  • Child → parent correlation
  • URL, method, headers, body
  • Response status and duration
  • End-to-end request chain visibility

How to opt-in

Enable outgoing HTTP request tracking in your configuration:

builder.Services.AddHttpInspector(options =>
{
    options.EnableOutgoingTracking = true;
    
    // Optional: configure outgoing tracking behavior
    options.Outgoing.IncludeUrlQuery = true;
    options.Outgoing.MaxBodyLength = 4_096;
});

Then simply inject IHttpClientFactory in your endpoints or controllers:

app.MapGet("/api/external", async (IHttpClientFactory factory) =>
{
    var client = factory.CreateClient("demo-api");
    var response = await client.GetAsync("https://api.example.com/data");
    var payload = await response.Content.ReadAsStringAsync();
    return Results.Text(payload, "application/json");
});

That's it! All HTTP calls made through IHttpClientFactory will be automatically tracked and correlated with their parent requests.

Outgoing Requests


🔁 Request replay & editing built-in

Replay any captured request — or fully edit it before sending.

Edit anything:

  • URL and query parameters
  • HTTP method
  • Headers (add/remove/change)
  • Body (JSON, XML, form-data, raw text)

Features:

  • Instant replay via internal loopback
  • Rich request editor with live preview
  • Copy as:
    • curl
    • PowerShell
    • Raw HTTP
  • Replay results shown directly inside the UI

Replay Feature


🔒 Safe and configurable

  • Redact sensitive headers
  • Truncate large request/response bodies
  • Include/exclude specific paths
  • Optional authentication for the dashboard
  • Configurable retention and file rotation

📦 Extensible storage

The storage layer is fully pluggable via:

public interface IHttpInspectorStore
{
    IAsyncEnumerable<JsonElement> GetEventsAsync(DateTimeOffset? since, CancellationToken ct);
}

Use the built-in JSONL file store or replace it with:

  • SQLite
  • SQL databases
  • Cloud blob storage
  • In-memory ring buffers
  • Custom backends

🌐 Streaming API

Query traffic programmatically:

/http-inspector/stream?since=<timestamp>

Returns an efficient JSON array with incremental fetch capability, ideal for:

  • automation
  • custom dashboards
  • debugging pipelines
  • IDE integrations

⚙️ Optional Configuration

app.UseHttpInspector(store =>
{
    store.MaxFileSizeBytes = 5 * 1024 * 1024; // 5 MB
    store.RetainedFileCount = 4;
    store.RetainedDays = 14;
});

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 is compatible.  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.6.0 116 12/20/2025
1.5.0 178 11/24/2025
1.4.0 389 11/20/2025
1.3.0 388 11/19/2025
1.2.0 152 11/15/2025
1.1.0 245 11/14/2025
1.0.0 269 11/13/2025