WinHTTP 同步 HTTP 客户端。类型名必须写 HTTP类(不要写 HTTP)。声明变量时一般会自动创建会话。
可与 JSON类、JS类、查询串类 配合组请求体 / 拼签名。
1. 快速开始
HTTP类 http
文本 page = http.提交("GET", "https://www.example.com")
如果 (page == "") {
输出(http.取错误())
输出("状态码=" + 到文本(http.取状态码()))
}
http.置请求头("Content-Type", "application/json")
JSON类 body
body.置为空对象()
body.置文本("name", "Y++")
文本 resp = http.提交("POST", "https://httpbin.org/post", body.到文本())
流式(SSE,常见聊天补全 SSE 的 delta.content):
函数 流式增量(文本 增量) {
框.文本 = 框.文本 + 增量
}
http.置请求头("Authorization", "Bearer " + apiKey)
如果 (http.提交流式("POST", url, jsonBody, &流式增量) == 假) {
输出(http.取错误())
}
2. 常用方法
| 方法 | 说明 |
|---|---|
置超时(毫秒) |
解析/连接/发送/接收共用超时;<=0 按 30000 |
置请求头 / 删请求头 / 清空请求头 |
后续请求使用 |
置Cookie |
Cookie 头 |
置代理 |
系统 / 直连 / HTTP / SOCKS 等 |
禁止重定向 / 置重定向次数 |
3xx 行为 |
提交(方法, URL, [正文]) |
同步请求,返回响应文本 |
提交字节集(...) |
同步,返回响应字节集 |
提交流式(方法, URL, 正文, &回调) |
SSE;回调参数为文本增量 |
下载(URL, 本地路径, [&进度回调]) |
GET 落盘 |
取状态码 / 取响应文本 / 取响应字节集 / 取响应字节数 |
上次响应 |
取响应头 / 取全部响应头 |
响应头 |
取错误 / 重置 |
错误信息;清空会话状态 |
3. 注意
- 全程同步:在界面线程调用会卡住 UI;长请求考虑放到工作线程或接受阻塞。
- 正文 / 响应文本按 UTF-8 处理。
POST未手动设头时默认application/x-www-form-urlencoded;PUT/PATCH常见默认 JSON Content-Type(以运行时为准,可随时置请求头覆盖)。提交流式不是通用字节流:只解析 SSE,且当前抽取 常见聊天补全格式的choices[].delta.content。普通 REST 用提交;大文件用下载。- 每个
HTTP类变量是独立会话(头、代理、超时、上次响应互不影响)。 - 返回的文本缓冲有环区限制:需要保留时请立刻赋给自己的
文本变量。
4. 与 JSON 联用
HTTP类 http
JSON类 req
JSON类 resp
req.置为空对象()
req.置文本("q", "hello")
文本 raw = http.提交("POST", url, req.到文本())
如果 (resp.解析(raw)) {
输出(resp.取文本("data.id"))
}