生态Web 与网络
言访:HTTP 客户端
使用言访 1.0 构造有界 HTTP/HTTPS 请求、发送 JSON/言据、重试并注入测试传输。
言访(yanxu-request)1.0.0 是现代 HTTP 客户端与请求构建库。它提供真实 HTTP/HTTPS
传输,也允许用 Mock、自定义、录制和严格回放传输替换网络;非 2xx 响应仍是正常响应,
只有显式调用确保成功才会转成状态错误。
安装
最低言序为 1.1.11:
yanbao add request --version '^1.0'
yanbao install等价的格式 2 清单会固定稳定标签:
[依赖]
request = { 包 = "言访", git = "https://github.com/yanxulang/yanxu-request.git", 修订 = "v1.0.0", 版 = "^1.0" }可复用客户端
引「包:request」为 言访;
定 API 为 言访.客户端()
.基础地址(「https://api.example.com/v1/」)
.默认首部({「accept」:「application/json」})
.总超时(8000)
.最大响应字节(2097152)
.重试状态(【429,502,503,504】);
定 响应 为 API.取(「users/42」)
.请求编号(「get-user-42」)
.发送()
.确保成功();
定 用户:典 为 响应.解析JSON();支持 GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS 和自定义方法。查询值列会编码为 重复键;正文支持文字、字节、JSON、规范言据、表单、Multipart 和文件。
言据与认证
定 资料 为 API.发文(「profiles」)
.Bearer认证(令牌)
.言据正文({「姓名」:「子衿」,「等级」:1})
.发送()
.确保成功()
.解析言据();言据正文使用版本化媒体类型和 UTF-8;普通 JSON 不会被误识别为言据。Basic 用户名、
Bearer、Cookie 和首部都拒绝控制字符。受控重定向跨协议、主机或有效端口时自动移除
authorization、cookie与proxy-authorization。
重试、中间件和传输
- 默认只重试幂等方法,并复用言韧的退避、抖动和最大尝试策略。
- 识别 408、425、429、500、502、503、504 和可重试网络错误,尊重
Retry-After。 - 请求前、请求后、错误、重试前和重定向前钩子具有稳定顺序并可移除。
- 言录集成默认脱敏认证、Cookie、令牌和 API 密钥类首部。
- Mock 适合单元测试;录制文档可能含原始正文和首部,不应提交生产流量。
无端口调用言枢:
引「包:web/言访测试」为 言访测试;
定 客户端 为 言访测试.客户端(应用);
定 响应 为 客户端.发文(「/profiles」)
.言据正文({「姓名」:「子衿」})
.发送()
.确保成功();权限与限制
库清单不申请网络或文件权限。最终应用必须授权真实目标主机;上传和下载路径另需文件 权限。Mock、录制解析和回放不需要网络。
- 标准传输固定最多自动跟随 5 次重定向,不支持关闭、定制次数、逐跳历史或重复响应首部。
- 连接、读取和写入细分超时只可在声明对应能力的自定义传输上设置。
- 网络响应先在
最大响应字节内完整缓冲;分块消费和下载到不是套接字级流式下载。 - 不实现缓存、Cookie 罐、代理配置、客户端证书、HTTP/2/3 或 WebSocket。
错误使用YANFANG_*或标准网络NET_*代码;程序应读取言访.错误详情,不要匹配消息。
仓库与完整 API:yanxulang/yanxu-request,
1.0.0 Release。