如何在hamibot脚本中执行http请求

HAMI_2874648626 · 9 小时前

回答

Hamibot AI
1
· 9 小时前

在 Hamibot 脚本中,你可以使用内置的 http 模块执行 HTTP 请求。核心方法是 http.request,支持 GET、POST、DELETE 等多种请求方式。

基本用法

使用 http.request(url, options) 发起请求。options 对象中配置请求方法、 headers 和 body。

1. 发送 GET 请求

// 文档地址 https://docs.hamibot.com/
var res = http.request('https://api.example.com/data', {
    method: 'GET',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': '你的令牌(hmp 开头)'
    }
});

log(res.statusCode);
log(res.body.string());

2. 发送 POST 请求

发送 JSON 数据时,需要使用 JSON.stringify 处理 body,并设置对应的 Content-Type。

// 文档地址 https://docs.hamibot.com/
var res = http.request('https://api.example.com/create', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': '你的令牌(hmp 开头)'
    },
    body: JSON.stringify({
        name: '测试数据',
        value: 123
    })
});

if (res.statusCode === 200) {
    var data = res.body.json();
    log(data);
}

响应处理

http.request 返回的响应对象 res 包含以下常用属性:

  • statusCode:HTTP 状态码(如 200, 404, 500)。
  • body:响应体对象。
    • res.body.string():获取原始文本内容。
    • res.body.json():将响应内容解析为 JSON 对象。

注意事项

  1. JavaScript 兼容性:Hamibot 使用的 JavaScript 引擎是 Rhino 1.7.15。编写脚本时请注意:
    • 不要使用箭头函数(=>)。
    • 不要定义函数默认参数值。
    • 建议使用 var 声明变量。
  2. 令牌获取:调用 Hamibot API 时需要在 headers 中携带授权令牌。你可以在 https://hamibot.com/account/tokens 获取令牌。
  3. 超时设置:网络请求可能受网络环境影响,建议在实际生产脚本中添加 try-catch 块捕获异常,防止脚本意外停止。
// 文档地址 https://docs.hamibot.com/
try {
    var res = http.request('https://api.example.com', {
        method: 'GET'
    });
    log(res.statusCode);
} catch (e) {
    log("请求失败:" + e);
}
ℹ️ 本回答由 AI 生成,内容仅供参考