FORGE KUI / docs

HTTP、异步任务与资源

HttpClient 和各绑定的网络入口用于宿主数据访问。

版本 3.61.7

接入方式

HttpClient 和各绑定的网络入口用于宿主数据访问。明确超时、取消、错误与响应大小限制,不让网络等待阻塞 UI 线程。后端返回的数据先验证,再用作界面文本或业务状态。

约束和排错

资源路径以应用部署目录和实际加载规则为准。开发机上能找到图片或字体不代表部署包齐全;在干净目录验证页面、CSS、字体、图片和扩展资源。不要把网络数据直接拼成 Lua 代码。

选择回调线程

HttpClient::fetchSync 会阻塞调用线程;fetchAsync 的回调可能来自工作线程。要在回调中更新界面,可使用 fetchAsyncOnMainThread,前提是平台已初始化且事件循环在运行。

cpp
void fetchForUi(kui::HttpClient& client, const kui::String& url,
                kui::HttpClient::Callback onComplete) {
    client.fetchAsyncOnMainThread(url, std::move(onComplete), 10.0);
}

响应与取消

Response 包含 statusCode、body、contentType 和 error。检查传输错误和 HTTP 状态,限制业务可接受的数据大小,再解析内容。HttpClient 由应用持有;窗口销毁或请求不再需要时取消,并避免回调访问旧文档元素。

cpp
client.cancelAll();

把网络结果放进界面

按下面的顺序验证一个最小场景,再接入完整应用。

  1. 按钮点击后设置加载状态,防止不受控的重复请求。
  2. 使用异步接口,在回调中区分请求失败、HTTP 状态与内容解析错误。
  3. 设置超时,关闭页面后不要再使用旧节点;凭据由宿主管理。
  4. 把成功、失败、空数据与重试分别做成可见状态,不只打印控制台。

文档有误或遗漏?

反馈此页问题 →