移除Web.md
This commit is contained in:
@@ -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<HttpResponseMessage> callback)` 异步GET
|
|
||||||
- `Get(Action<HttpResponseMessage> callback)` 同步GET
|
|
||||||
|
|
||||||
#### POST请求
|
|
||||||
- `PostAsync(Action<HttpResponseMessage> callback, Dictionary<string, string> formData = null)` 异步POST
|
|
||||||
- `Post(Action<HttpResponseMessage> callback, Dictionary<string, string> formData = null)` 同步POST
|
|
||||||
|
|
||||||
支持表单数据提交
|
|
||||||
|
|
||||||
### 内容加载
|
|
||||||
|
|
||||||
#### 文本加载
|
|
||||||
- `LoadAsTextAsync()` 异步加载为文本
|
|
||||||
- `LoadAsText()` 同步加载为文本
|
|
||||||
|
|
||||||
#### 二进制加载
|
|
||||||
- `LoadAsBinaryAsync()` 异步加载为字节数组
|
|
||||||
- `LoadAsBinary()` 同步加载为字节数组
|
|
||||||
|
|
||||||
#### JSON加载
|
|
||||||
- `LoadAsJson<T>()` 同步加载并反序列化JSON
|
|
||||||
- `LoadAsJsonAsync<T>()` 异步加载并反序列化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<MyDataType>();
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 类型安全的JSON加载
|
|
||||||
```csharp
|
|
||||||
var url = new ToolURL("https://api.example.com/users.json");
|
|
||||||
var users = url.LoadAsJson<List<User>>();
|
|
||||||
```
|
|
Reference in New Issue
Block a user