# Scm.Http **Repository Path**: openscm/scm.http ## Basic Information - **Project Name**: Scm.Http - **Description**: 基于.Net的网络请求工具类。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-05 - **Last Updated**: 2025-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Scm.Http ## 介绍 Scm.Http 是一个用于简化 HTTP 请求处理的 .NET 类库,提供了同步和异步的 HTTP 请求方法,支持 GET、POST 等常见请求方式,并封装了请求参数、请求头、请求体等内容的处理逻辑。该项目适用于需要进行网络通信的 .NET 应用程序开发。 ## 软件架构 该项目基于 .NET 平台开发,主要包含以下核心类: - `ScmHttpClient`:提供 HTTP 客户端功能,支持设置基础 URL、超时时间、用户代理等配置。 - `ScmHttpRequest`:封装 HTTP 请求参数,包括 URL、内容类型、请求头、请求体等。 - `ScmHttpParam`:表示 HTTP 请求中的键值参数。 - `HttpContentType` 和 `HttpMethodType`:定义常用的内容类型和 HTTP 方法。 - `HttpUtils`:提供一组静态方法用于简化常见的 HTTP 操作,如 GET、POST、文件下载等。 ## 安装教程 1. 从 release 目录获取 `Scm.Common.Http.dll` 文件。 2. 在你的项目中引用该 DLL 文件。 ## 使用说明 ### 创建客户端并发送请求 ```csharp var client = new ScmHttpClient("https://api.example.com"); var request = new ScmHttpRequest("/data"); request.AddQueryParameter("id", "123"); string response = client.GetText(request); Console.WriteLine(response); ``` ### 异步请求示例 ```csharp var client = new ScmHttpClient("https://api.example.com"); var request = new ScmHttpRequest("/data"); request.AddQueryParameter("id", "123"); string response = await client.GetTextAsync(request); Console.WriteLine(response); ``` ### 使用 HttpUtils 发送 GET 请求 ```csharp // 返回文本 string result = await HttpUtils.GetStringAsync("https://api.example.com/data?id=123"); // TODO result // 返回对象 var object = await HttpUtils.GetObjectAsync("https://api.example.com/data?id=123"); //TODO object; ``` ### 使用 HttpUtils 发送 POST 表单请求 ```csharp var form = new Dictionary { { "username", "test" }, { "password", "123456" } }; // 返回文本 string result = await HttpUtils.PostFormStringAsync("https://api.example.com/login", form); // TODO result // 返回对象 var object = await HttpUtils.PostFormObjectAsync("https://api.example.com/login", form); // TODO object ``` ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 特技 1. 支持同步与异步请求操作,适用于多种网络场景。 2. 提供丰富的工具方法,如 URL 编码、Base64 编码、IP 地址判断等。 3. 支持多种请求类型(GET、POST)和内容类型(JSON、表单、二进制等)。 4. 提供便捷的 HTTP 工具类 `HttpUtils`,简化常见网络操作。 5. 支持文件下载、JSON 序列化/反序列化等高级功能。