HttpInspector.AspNetCore
1.6.0
dotnet add package HttpInspector.AspNetCore --version 1.6.0
NuGet\Install-Package HttpInspector.AspNetCore -Version 1.6.0
<PackageReference Include="HttpInspector.AspNetCore" Version="1.6.0" />
<PackageVersion Include="HttpInspector.AspNetCore" Version="1.6.0" />
<PackageReference Include="HttpInspector.AspNetCore" />
paket add HttpInspector.AspNetCore --version 1.6.0
#r "nuget: HttpInspector.AspNetCore, 1.6.0"
#:package HttpInspector.AspNetCore@1.6.0
#addin nuget:?package=HttpInspector.AspNetCore&version=1.6.0
#tool nuget:?package=HttpInspector.AspNetCore&version=1.6.0
HttpInspector.AspNetCore
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:
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
- Install the NuGet package:
dotnet add package HttpInspector.AspNetCore --version 1.6.0 - Use the Quick Start Guide to set up the package in your ASP.NET project
- Open the dashboard:
http://localhost:<port>/http-inspector
✨ 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
🔗 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.
🔁 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
🔒 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 | 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 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. |
-
net8.0
- Microsoft.Extensions.FileProviders.Embedded (>= 8.0.0)
- Microsoft.Extensions.FileSystemGlobbing (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
-
net9.0
- Microsoft.Extensions.FileProviders.Embedded (>= 8.0.0)
- Microsoft.Extensions.FileSystemGlobbing (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.