YStudio Y++

HTTP类

Y++ / YStudio 开发文档 · 一点滴

类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → HTTP类。

类型名必须写完整「HTTP类」。声明时自动创建,一般无需再调 创建*。

硬约束

  1. 类型名必须写「HTTP类」。
  2. 方法调用必须带括号。
  3. 提交/下载失败看返回值与错误信息(以各方法说明为准)。
  4. 常与 JSON类、查询串类、编码类联用。
  5. 默认同步。异步(真) 后,提交 / 提交字节集 / 下载 在后台执行并立刻返回;用定时器看 是否完成(),再取响应。提交流式 仍须 异步(假)。

快速开始

HTTP类 http
文本 回 = http.提交("GET", "https://httpbin.org/get")
输出(回)
输出(http.取状态码())

异步(不卡界面)

HTTP类 http
定时器类 t
http.异步(真)
http.提交("GET", url)   // 立刻返回空文本;后台执行
函数 轮询 () {
    如果 (http.是否完成()) {
        t.停止()
        输出(http.取响应文本())
    }
}
t.启动(50, &轮询)
  • 异步时:提交/提交字节集 立刻返回空;下载 立刻返回真(已开始)。结果看 是否完成() 之后的 取响应文本 / 取状态码 / 取错误。
  • 提交流式 仍须 异步(假)。异步下载不调用进度回调。
  • 不要在按钮事件里空转等完成,用定时器轮询;可用 取消() 中止后台请求。
  • 默认自动解压 gzip/deflate;内网自签可用 忽略证书(真)。
  • 同一会话连续访问同一主机时会复用 WinHTTP 连接。
  • 关闭窗口前若还有后台请求,运行库会等待结束;也可先 取消() / 重置()。

HTTP类/创建

共 1 条。

创建HTTP

  • 签名:通用 创建HTTP()
  • 说明:创建一个独立的 HTTP 会话。一般直接写「HTTP类 h」即可(声明时自动创建);「创建HTTP()」仅在需要显式赋值时使用。

HTTP类/方法

共 31 条。

异步

  • 签名:无 异步([逻辑 启用=真])
  • 说明:真=本会话之后的 提交/提交字节集/下载 放到后台线程,调用立刻返回;假=恢复同步。默认假。用定时器看 是否完成() 再取响应。提交流式须先 异步(假)。

是否完成

  • 签名:逻辑 是否完成()
  • 说明:没有进行中的后台请求时为真。同步模式下恒为真。

取消

  • 签名:逻辑 取消()
  • 说明:取消进行中的后台请求;无后台任务时返回假。取消后 取错误() 常为「已取消」。

启用解压

  • 签名:无 启用解压([逻辑 启用=真])
  • 说明:是否自动解压 gzip/deflate 响应正文。默认开。

取解压

  • 签名:逻辑 取解压()
  • 说明:是否已启用自动解压。

忽略证书

  • 签名:无 忽略证书([逻辑 启用=真])
  • 说明:HTTPS 时是否忽略证书错误(自签/过期/主机名不匹配)。默认关。仅建议内网调试使用。

取忽略证书

  • 签名:逻辑 取忽略证书()
  • 说明:是否已忽略证书错误。

置超时

  • 签名:无 置超时(整数 毫秒)
  • 说明:设置本会话后续请求的超时(解析/连接/发送/接收共用同一毫秒值)。无返回值。
  • 参数一│整数 毫秒: >0 生效;≤0 时回退为 30000。

置请求头

  • 签名:逻辑 置请求头(文本 名, 文本 值)
  • 说明:设置或覆盖一条「请求」头(下次 提交/下载 发出)。
  • 参数二│文本 值: 可为空文本(仍会发送「名:」行)。

置Cookie

  • 签名:逻辑 置Cookie(文本 Cookie[, 文本 值])
  • 说明:设置本会话 Cookie 请求头。单参数:整段 Cookie 字符串(多条用 “; ” 分隔,与浏览器复制一致);双参数:追加单个 name=value(已有 Cookie 时用 “; ” 拼接)。
  • 参数一│文本 Cookie: 单参数时为整段 Cookie;双参数时为 Cookie 名。
  • 参数二│[文本 值]: 省略=参数一为整段 Cookie;提供时为 Cookie 值(可为空文本)。

启用自动Cookie

  • 签名:无 启用自动Cookie([逻辑 启用])
  • 说明:启用后:每次响应自动把 Set-Cookie 合并进本会话 Cookie,后续请求自动带上。默认关闭;不影响既有 置Cookie / 置请求头 用法。
  • 参数一│[逻辑 启用]: 真/省略=启用;假=关闭自动合并。

取自动Cookie

  • 签名:逻辑 取自动Cookie()
  • 说明:返回是否已启用自动 Cookie 合并。

取Cookie

  • 签名:文本 取Cookie()
  • 说明:返回本会话当前将发送的 Cookie 请求头(整段 name=value; …)。

清空Cookie

  • 签名:无 清空Cookie()
  • 说明:清空本会话 Cookie 罐与 Cookie 请求头(不影响其它请求头)。无返回值。

删请求头

  • 签名:逻辑 删请求头(文本 名)
  • 说明:删除一条已设置的请求头。
  • 参数一│文本 名: 须与置请求头时写入的名称一致(区分大小写)。

清空请求头

  • 签名:无 清空请求头()
  • 说明:清空本会话全部自定义请求头。无返回值。

置代理

  • 签名:无 置代理(文本 代理, [文本 账号], [文本 密码])
  • 说明:设置本会话代理;可选账号/密码(需认证的 HTTP/HTTPS 代理)。空/「系统」=系统代理;「直连」=不走代理。无返回值。
  • 参数一│文本 代理: 支持多种写法—— • “” / “系统”:系统默认代理 • “直连” / “none”:不使用代理 • “127.0.0.1:7890” 或 “http://127.0.0.1:7890”:HTTP 代理 • “socks5://127.0.0.1:1080”:SOCKS(系统支持时) • “user:pass@127.0.0.1:7890” 或 “http://user:pass@host:port”:带认证 • “http=h:1;https=h:1”:WinHTTP 多协议列表
  • 参数二│[文本 账号]: 代理登录账号;省略则尝试从地址里的 user:pass@ 解析。
  • 参数三│[文本 密码]: 代理登录密码;与账号成对使用。

禁止重定向

  • 签名:无 禁止重定向([逻辑 禁止])
  • 说明:是否禁止自动跟随 3xx 重定向。默认假=允许跟随。无返回值。
  • 参数一│[逻辑 禁止]: 真=不跟随;假/省略=允许跟随。

置重定向次数

  • 签名:无 置重定向次数([整数 次数])
  • 说明:允许自动跟随重定向的最大次数。默认 -1 表示尽量跟到最后。无返回值。
  • 参数一│[整数 次数]: -1=不限(内部较大上限);0=不跟随;>0=最多 N 次。

提交

  • 签名:文本 提交(文本 方法, 文本 URL, [文本 正文])
  • 说明:按 HTTP 方法请求;直接返回响应文本。失败返回空文本,看 取错误()。正文可选:GET/HEAD/OPTIONS 等通常省略;POST/PUT/PATCH 等再传。协议头用 置请求头,代理用 置代理。
  • 参数一│文本 方法: GET/POST/PUT/HEAD/OPTIONS/DELETE/PATCH 等(大小写均可)。
  • 参数二│文本 URL: 完整网址。
  • 参数三│[文本 正文]: 可选请求体(UTF-8);无正文可省略。

提交字节集

  • 签名:字节集 提交字节集(文本 方法, 文本 URL, [字节集 正文])
  • 说明:按 HTTP 方法请求;直接返回响应字节集。正文可选(GET 等可省略)。失败返回空字节集。
  • 参数一│文本 方法: GET/POST/PUT/HEAD/OPTIONS/DELETE/PATCH 等。
  • 参数二│文本 URL。
  • 参数三│[字节集 正文]: 可选;无正文可省略。

提交流式

  • 签名:逻辑 提交流式(文本 方法, 文本 URL, 文本 正文, [子程序指针 增量回调])
  • 说明:同步发起 HTTP 请求,边收响应边回调「增量文本」。 传输层:按 SSE(Server-Sent Events)分行读取 data: 行,并在回调间隙泵一次 UI 消息以便刷新界面。 解析层(当前实现):从每条 data JSON 中提取 OpenAI/DeepSeek chat.completions 兼容的 choices[].delta.content;不是任意原始字节流,也不是通用 NDJSON。 返回真=流读完且无传输错;假=看 取错误()。
  • 参数一│文本 方法: 通常 “POST”;也可用 GET 等(视服务端是否推 SSE)。
  • 参数二│文本 URL。
  • 参数三│文本 正文: 请求体(多为 JSON);对接 chat 流式时正文里须 “stream”: true。
  • 参数四│[子程序指针 增量回调]: 如 &流式增量;签名 函数 增量(文本 增量)。有 content 时回调非空增量;流结束再回调一次 增量=”“(可忽略)。

下载

  • 签名:逻辑 下载(文本 URL, 文本 保存路径, [子程序指针 进度回调])
  • 说明:GET 流式写入本地文件。Cookie/协议头/代理/重定向均用会话设置。可选进度回调:函数 进度(整数 已收, 整数 总计)。返回真=写完。
  • 参数一│文本 URL。
  • 参数二│文本 保存路径: 完整路径;空路径返回假。
  • 参数三│[子程序指针 进度回调]: 如 &下载进度;省略或 0 表示不要。总计未知时总计=-1。

取状态码

  • 签名:整数 取状态码()
  • 说明:最近一次成功收到响应后的 HTTP 状态码。

取响应字节数

  • 签名:整数 取响应字节数()
  • 说明:最近一次响应正文的原始字节长度(解码前)。

取响应文本

  • 签名:文本 取响应文本()
  • 说明:最近一次响应正文解码为文本(优先 UTF-8,含 BOM 剥离;失败回退 ACP)。

取响应字节集

  • 签名:字节集 取响应字节集()
  • 说明:最近一次响应正文的原始字节副本(不经文本解码)。

取响应头

  • 签名:文本 取响应头(文本 名)
  • 说明:按名称取一条响应头的值;找不到返回空文本。查找不区分大小写。
  • 参数一│文本 名: 如 “Content-Type”、”content-type” 等效。

取全部响应头

  • 签名:文本 取全部响应头()
  • 说明:返回原始响应头文本(CRLF 分隔,通常含状态行),便于调试。

取错误

  • 签名:文本 取错误()
  • 说明:最近一次失败操作的错误说明;无错时为空文本。

重置

  • 签名:无 重置()
  • 说明:清空请求头、代理、重定向设置、状态码、响应体/头、错误,并将超时恢复为 30000。无返回值。

易错对照

错误 正确
类型写成 HTTP 必须「HTTP类」
忽略超时/错误 检查返回与错误信息

冒烟

工程 测什么

相关

JSON类 · 查询串类 · 编码类