# HttpAgent **Repository Path**: hy176eagle/HttpAgent ## Basic Information - **Project Name**: HttpAgent - **Description**: HttpAgent 是一个高性能、灵活且易用的开源库,提供了全面的 HTTP 功能支持,包括文件传输、轮询、测试工具、实时通信、请求管理、Media 类型处理、MessagePack 支持、声明式请求等,并具有低资源消耗和高测试覆盖率的特点。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: https://furion.net/docs/http-agent - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 36 - **Created**: 2025-01-18 - **Last Updated**: 2025-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HttpAgent [![license](https://img.shields.io/badge/license-MIT-orange?cacheSeconds=10800)](https://gitee.com/dotnetchina/HttpAgent/blob/master/LICENSE) [![nuget](https://img.shields.io/nuget/v/HttpAgent.svg?cacheSeconds=10800)](https://www.nuget.org/packages/HttpAgent) [![dotNET China](https://img.shields.io/badge/organization-dotNET%20China-yellow?cacheSeconds=10800)](https://gitee.com/dotnetchina) 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 is characterized by low resource consumption and high test coverage. ![HttpAgent.drawio](https://gitee.com/dotnetchina/HttpAgent/raw/master/drawio/HttpAgent.drawio.jpg "HttpAgent.drawio.jpg") [**View High-Definition Architecture Diagram**](https://diagram-viewer.giteeusercontent.com?repo=dotnetchina/HttpAgent&ref=master&file=drawio/HttpAgent.drawio) ## Features - **Comprehensive `HTTP` Method Support**: Covers `GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `TRACE`, and `OPTIONS` methods. - **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. - **`HTTP` Proxy and Microservice Integration**: Supports `HTTP` proxy 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 with `WebSocket` protocol. - **Request Management and Log Auditing**: Includes built-in request interception mechanisms and `HTTP` request log auditing functions. - **Media Type Handling**: Provides predefined handling mechanisms for mainstream `MediaTypes` and offers an open interface for custom handling. - **Declarative Requests**: Specifying the behavior of requests through simple attribute annotations or interface definitions. - **`MessagePack` Support**: Integrates `MessagePack` serialization and deserialization capabilities to enhance data exchange efficiency. - **Flexible Response Transformation**: Provides common `HTTP` response 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. - **Architecture Design**: Flexible architecture design that is easy to use and extend. - **Cross-Platform Independence**: Supports cross-platform operation without external dependencies. - **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 8` and higher versions. ## Installation ```powershell dotnet add package HttpAgent ``` ## Getting Started We have many examples on our [homepage](https://furion.net/docs/http-agent/). Here's your first one to get you started: 1. Register `HttpRemote` service: ```cs services.AddHttpRemote(); ``` 2. Retrieve internet data: ```cs public class YourService(IHttpRemoteService httpRemoteService) { public async Task GetContent() { return await httpRemoteService.GetAsStringAsync("https://furion.net/"); } } ``` [More Documentation](https://furion.net/docs/http-agent/) ## Documentation You can find the HttpAgent documentation on our [homepage](https://furion.net/docs/http-agent/). ## Contributing 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](https://gitee.com/dotnetchina/HttpAgent), and we appreciate community contributions for bug fixes and improvements. ## License HttpAgent is released under the [MIT](./LICENSE) open source license. [![](./assets/baiqian.svg)](https://baiqian.com)