HttpAgent is a high-performance, flexible, and user-friendly open-source library that provides comprehensive support for HTTP functionalities, including file transfer, polling, testing tools, real-time communication, request management, media type handling, MessagePack support, Declarative Requests, and more. It features a built-in industrial-grade HTTP traffic inspection engine (Profiler) that completely eliminates the "black box" dilemma in third-party API integration, and is characterized by low resource consumption and high test coverage.
View High-Definition Architecture Diagram
- Comprehensive
HTTPMethod Support: CoversGET,POST,PUT,DELETE,PATCH,HEAD,TRACE,OPTIONSandQUERYmethods. - Industrial-Grade HTTP Traffic Inspection Engine (
Profiler): Completely eliminates the "black box" pain points in third-party API integration, allowing you to inspect underlying HTTP traffic directly in the console without relying on external packet capture tools like Fiddler or Wireshark. - File Transfer Functionality: Supports file upload and download with real-time transfer progress monitoring.
- Polling Mechanism: Supports standard polling and long polling with customizable polling intervals.
- Testing Toolkit: Capable of stress testing, performance testing, and simulation testing with the ability to generate detailed test reports; supports configuration of the number of requests, concurrency levels, and test iteration counts.
HTTPProxy and Microservice Integration: SupportsHTTPproxy and request forwarding, suitable for integration development in microservice architectures.- Real-Time Communication Capability: Implements real-time data push via
Server-Sent Events (SSE)and is compatible withWebSocketprotocol. - Request Management and Log Auditing: Includes built-in request interception mechanisms and
HTTPrequest log auditing functions. - Request Resilience & Fault Tolerance: Built-in retry mechanism (triggered by status codes/exceptions, with exponential backoff) and timeout control; extensible to circuit breaker, fallback, and other advanced resilience patterns.
- Automatic
Access TokenManagement: Built-in automaticAccess Tokenrefresh and injection mechanism, supports customTokenproviders and configurators, automatically attachesTokento requests, and retries automatically on401responses. - API Call Quota Limitation: Supports daily, weekly, monthly, and lifetime window strategies, with customizable quota strategies; immediately aborts requests when limits are exceeded, preventing abuse of third-party APIs.
ETagResponse Caching: Automatically caches responses withETag, and reuses cached responses when the server returns304 Not Modified, reducing data transfer.- Media Type Handling: Provides predefined handling mechanisms for mainstream
MediaTypesand offers an open interface for custom handling. - Declarative Requests: Specifying the behavior of requests through simple attribute annotations or interface definitions.
MessagePackSupport: IntegratesMessagePackserialization and deserialization capabilities to enhance data exchange efficiency.WebServiceSupport: Comprehensive support forSOAPandRESTful WebService, including automatic client proxy generation,WSDLparsing,XML/JSONdata binding, simplifying integration and interaction.ODataSupport: Built-inODataclient with support for standard query options including$filter,$select, and$expand, streamliningODataservice integration.- Flexible Response Transformation: Provides common
HTTPresponse transformers and supports custom transformation logic. - High Performance and Resource Management: Employs memory optimization techniques and connection pool management to ensure low resource consumption and high performance.
- Response Automatic Decompression: Built-in support for
gzip,deflate,brotliandzstdautomatic decompression of response content, reducing manual handling and saving bandwidth. - Architecture Design: Flexible architecture design that is easy to use and extend.
- Cross-Platform Independence: Supports cross-platform operation without external dependencies.
- Application Type Support: Supports any application type, including but not limited to Console, Web, WebAssembly, WinForms, WPF, MAUI.
- High-Quality Code Assurance: Adheres to high-standard coding practices, with unit and integration test coverage as
high as
98%. .NET 8+Compatibility: Can be deployed and used in environments running.NET 8and higher versions.
dotnet add package HttpAgentWe have many examples on our homepage. Here's your first one to get you started:
- Register
HttpRemoteservice:
services.AddHttpRemote();- Retrieve internet data:
public class YourService(IHttpRemoteService httpRemoteService)
{
public async Task<string?> GetContent()
{
return await httpRemoteService.GetAsStringAsync("https://furion.net/");
}
}You can find the HttpAgent documentation on our homepage.
The main purpose of this repository is to continue developing the core of HttpAgent, making it faster and easier to use. The development of HttpAgent is publicly hosted on Gitee, and we appreciate community contributions for bug fixes and improvements.
HttpAgent is released under the MIT open source license.
