diff --git a/Convention/Runtime/Web.md b/Convention/Runtime/Web.md deleted file mode 100644 index f682e50..0000000 --- a/Convention/Runtime/Web.md +++ /dev/null @@ -1,121 +0,0 @@ -[返回](./Runtime-README.md) - -# /Convention/Runtime/Web - ---- - -网络工具模块,提供HTTP客户端和URL操作功能 - -## ToolURL类 - -### 构造与基本信息 -- `ToolURL(string url)` 从URL字符串创建对象 -- `ToString()` / `GetFullURL()` / `FullURL` 获取完整URL -- `implicit operator string` 隐式字符串转换 - -### URL属性解析 -- `GetFilename()` 获取URL中的文件名 -- `GetExtension()` 获取文件扩展名 -- `ExtensionIs(params string[] extensions)` 检查扩展名是否匹配 - -### URL验证 -- `IsValid` 属性,检查URL是否有效 -- `ValidateURL()` 验证URL格式 -- `implicit operator bool` 隐式布尔转换,等同于IsValid - -支持HTTP和HTTPS协议的绝对URL - -### HTTP方法 - -#### GET请求 -- `GetAsync(Action callback)` 异步GET -- `Get(Action callback)` 同步GET - -#### POST请求 -- `PostAsync(Action callback, Dictionary formData = null)` 异步POST -- `Post(Action callback, Dictionary formData = null)` 同步POST - -支持表单数据提交 - -### 内容加载 - -#### 文本加载 -- `LoadAsTextAsync()` 异步加载为文本 -- `LoadAsText()` 同步加载为文本 - -#### 二进制加载 -- `LoadAsBinaryAsync()` 异步加载为字节数组 -- `LoadAsBinary()` 同步加载为字节数组 - -#### JSON加载 -- `LoadAsJson()` 同步加载并反序列化JSON -- `LoadAsJsonAsync()` 异步加载并反序列化JSON - -### 文件保存 -- `Save(string localPath = null)` 自动选择格式保存到本地 -- `SaveAsText(string localPath = null)` 保存为文本文件 -- `SaveAsJson(string localPath = null)` 保存为JSON文件 -- `SaveAsBinary(string localPath = null)` 保存为二进制文件 - -### 文件类型判断 -- `IsText` 是否为文本文件(txt, html, htm, css, js, xml, csv) -- `IsJson` 是否为JSON文件 -- `IsImage` 是否为图像文件(jpg, jpeg, png, gif, bmp, svg) -- `IsDocument` 是否为文档文件(pdf, doc, docx, xls, xlsx, ppt, pptx) - -### 高级操作 -- `Open(string url)` 在当前对象上打开新URL -- `DownloadAsync(string localPath = null)` 异步下载文件 -- `Download(string localPath = null)` 同步下载文件 - -## 设计特点 - -### 统一的HTTP客户端 -使用静态 `HttpClient` 实例,避免连接池耗尽 - -### 自动内容类型检测 -基于文件扩展名自动判断内容类型,优化保存和处理策略 - -### 异步支持 -所有网络操作都提供异步和同步两种版本 - -### 错误处理 -网络请求失败时回调函数接收null参数,方法返回false - -### 文件管理集成 -下载的文件自动转换为ToolFile对象,与文件系统模块无缝集成 - -### 灵活的数据格式 -支持文本、二进制、JSON等多种数据格式的加载和保存 - -## 使用示例 - -### 基本HTTP请求 -```csharp -var url = new ToolURL("https://api.example.com/data"); -if (url.IsValid) -{ - url.Get(response => { - if (response != null && response.IsSuccessStatusCode) - { - // 处理响应 - } - }); -} -``` - -### 文件下载 -```csharp -var url = new ToolURL("https://example.com/file.json"); -var localFile = url.Download("./downloads/file.json"); -if (localFile.Exists()) -{ - var data = localFile.LoadAsJson(); -} -``` - -### 类型安全的JSON加载 -```csharp -var url = new ToolURL("https://api.example.com/users.json"); -var users = url.LoadAsJson>(); -``` \ No newline at end of file