HarmonyOS鸿蒙NEXT怎么简单调用扣子工作流接口?
HarmonyOS鸿蒙NEXT怎么简单调用扣子工作流接口? 问题描述:想调用扣子工作流的 HTTP 接口,传递参数并获取执行结果,简单实现? 关键字:鸿蒙 NEXT、扣子工作流、接口调用
回答:
鸿蒙 NEXT 调用扣子工作流接口,核心是配置网络权限 + 发送 POST 请求(带鉴权 token 和入参) + 解析 JSON 结果,代码极简,仅需核心几步就能实现:
第一步:配置网络权限(module.json5)
先声明INTERNET权限,否则无法调用网络接口:
{
"module": {
"requestPermissions": [
{ "name": "ohos.permission.INTERNET" }
]
}
}
第二步:核心调用代码(传参 + 获取结果)
import http from '@ohos.net.http';
// 简单调用扣子工作流接口
async callKouziWorkflow() {
// 1. 创建HTTP客户端
const httpClient = http.createHttp();
try {
// 2. 发送POST请求(替换为自己的配置)
const res = await httpClient.request('https://www.kuaishou.com/openapi/v1/workflow/run', {
method: http.RequestMethod.POST,
// 请求头(鉴权+数据格式)
header: {
'Content-Type': 'application/json',
'Authorization': 'Bearer 你的扣子工作流token' // 关键:Bearer + 空格 + token
},
// 传递工作流参数(input里放自定义入参)
extraData: JSON.stringify({
workflow_id: '你的工作流ID', // 扣子平台复制的工作流ID
input: { name: '测试', age: 20 } // 工作流需要的入参(按需改)
})
});
// 3. 解析返回结果
const rawData = new TextDecoder().decode(res.result); // 二进制转字符串
const result = JSON.parse(rawData); // 转JSON对象
console.log('工作流执行结果:', result);
return result;
} catch (err) {
console.log('调用失败:', err.message);
} finally {
// 4. 释放资源(必做)
httpClient.destroy();
}
}
// 调用示例
// this.callKouziWorkflow();
关键说明:
- 核心参数:
token和workflow_id:从扣子平台获取(工作流详情页可查);input:放工作流需要的自定义参数,格式要和工作流入参规则一致;
- 响应解析:鸿蒙 HTTP 响应的
result是二进制数组,必须用TextDecoder转字符串后再解析 JSON。
避坑点:
Authorization格式:必须是Bearer + 空格 + token,少空格会直接鉴权失败;- 入参格式:
extraData需传 JSON 字符串(用JSON.stringify),不能直接传对象; - 网络问题:确保设备联网,且扣子工作流已发布(未发布的草稿无法调用)。
更多关于HarmonyOS鸿蒙NEXT怎么简单调用扣子工作流接口?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS NEXT中调用扣子工作流接口,需使用ArkTS语言。首先安装@koozi/workflow SDK,通过ohpm包管理器执行ohpm install [@koozi](/user/koozi)/workflow。然后在代码中导入并初始化工作流客户端,配置API密钥与端点。使用WorkflowClient实例调用execute方法,传入工作流ID与参数数据即可触发执行。注意网络权限需在module.json5中声明。
在HarmonyOS NEXT中调用扣子(Bozh)工作流HTTP接口,可通过[@ohos](/user/ohos).net.http模块实现。以下是关键步骤:
-
导入模块:
import http from '[@ohos](/user/ohos).net.http'; -
创建HTTP请求:
let httpRequest = http.createHttp(); -
设置请求参数(以POST为例):
let options = { method: http.RequestMethod.POST, header: { 'Content-Type': 'application/json' }, extraData: JSON.stringify({ key: 'value' }) // 工作流参数 }; -
发送请求并处理响应:
httpRequest.request('https://api.bozh.com/workflow', options) .then((response) => { if (response.responseCode === 200) { let result = JSON.parse(response.result.toString()); // 处理工作流返回结果 } }) .catch((err) => { console.error('请求失败:', err); });
注意:
- 需在
module.json5中声明网络权限:"requestPermissions": [{ "name": "ohos.permission.INTERNET" }] - 扣子工作流接口地址和参数格式需参考其官方API文档
- 异步操作建议使用Promise或async/await处理
此方法直接使用HarmonyOS原生HTTP能力,无需额外依赖库。

