# Scm.Http **Repository Path**: openscm/scm.http ## Basic Information - **Project Name**: Scm.Http - **Description**: No description available - **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-24 ## 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 // Get 请求 // 返回文本 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; // POST 请求 // 请求体参数 var form = new Dictionary { { "username", "test" }, { "password", "123456" } }; // 请求头参数 var header = new Dictionary { { "KEY1", "you key 1" }, { "KEY2", "you key 2" } }; // 返回文本 string result = await HttpUtils.PostFormStringAsync("https://api.example.com/login", form, header); // TODO result // 返回对象 var object = await HttpUtils.PostFormObjectAsync("https://api.example.com/login", form, header); // TODO object // JSON 请求 var json = "you JSON string"; // 返回文本 string result = await HttpUtils.PostJsonStringAsync("https://api.example.com/login", json, header); // TODO result // 返回对象 var object = await HttpUtils.PostJsonObjectAsync("https://api.example.com/login", json, header); // TODO object ``` ### 创建客户端并发送请求,适用于复制操作场景: ```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); // 异步请求示例 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); ``` ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 特技 1. 支持同步与异步请求操作,适用于多种网络场景。 2. 提供丰富的工具方法,如 URL 编码、Base64 编码、IP 地址判断等。 3. 支持多种请求类型(GET、POST)和内容类型(JSON、表单、二进制等)。 4. 提供便捷的 HTTP 工具类 `HttpUtils`,简化常见网络操作。 5. 支持文件下载、JSON 序列化/反序列化等高级功能。