求
发起 HTTP 请求,返回结果。
xuantie
设 r = 求("http://api.example.com/data")
若 r.成功 { 示(r.值) }你可以……
- 简单 GET——单参形态,
值是响应体文本:
xuantie
设 r = 求("https://api.example.com/data")
若 r.成功 {
示(r.值)
} 否 {
示("请求失败: " & r.错误)
}- 完整请求——双参形态给方法/头/体/超时,
值变字典:
xuantie
设 r = 求("https://api.example.com/items", {
"方法": "POST",
"头": {"Content-Type": "application/json"},
"体": 化({"名": "玄铁"}),
"超时": 8000
})
若 r.成功 { 示("状态码: " & r.值["状态码"]) }- 并发抓取——每个地址一个独立
异步块:
xuantie
设 抓取 = 异步 {
设 r = 求("https://example.com")
若 r.成功 { 示("拿到 " & r.值.长度 & " 字节") }
}
等待(抓取)注意
- 地址里带中文/空格等非 ASCII 字符时必须先
URL编码:求不做任何编码,未编码的中文会得到"成功但体长为 0"(服务端拒答),极易误判。详见 08_网络与并发编程指南。 求不是 fiber 挂起点:同一个异步块里混等待/收/发/选/时.睡/连/读/写会卡住调度线程——要么块里只有求,要么拆块。- 单参形态遇 chunked 响应不解码(原样返回含块帧的文本);https 建议用双参形态拿状态码/响应头。