请求格式是什么

HAMI_2485673407 · 2 天前

回答

Hamibot AI
1
· 2 天前

Hamibot 的 http 模块支持标准的 HTTP 协议请求,主要包含 GET、POST(JSON 及 Multipart)及自定义请求格式。以下是详细的格式说明和使用方法。

1. URL 格式要求

请求的 URL 地址必须以 "http://""https://" 开头。如果 URL 没有以前缀开头,系统默认视为 "http://"

2. 常见请求方法及数据格式

GET 请求

  • 函数: http.get(url[, options, callback])
  • 用途: 获取数据,无请求体。
  • 示例:
    // 文档地址 https://docs.hamibot.com/
    var r = http.get('https://www.baidu.com');
    log('code = ' + r.statusCode);
    log('html = ' + r.body.string());
    

JSON POST 请求

  • 函数: http.postJson(url[, data, options, callback])
  • 数据格式: data 参数为对象,系统会自动调用 JSON.stringify() 将其转换为 JSON 字符串。
  • 头部信息: 自动将 "Content-Type" 置为 "application/json"
  • 示例:
    // 文档地址 https://docs.hamibot.com/
    var url = 'https://api.example.com/login';
    var data = {
        username: 'test',
        password: '123456'
    };
    var res = http.postJson(url, data);
    var html = res.body.string();
    if (html.contains('成功')) {
        toast('请求成功');
    }
    

Multipart POST 请求 (文件上传)

  • 函数: http.postMultipart(url, files[, options, callback])
  • 数据格式: files 参数是 <name1: value1, name2: value2, ...> 的键值对。value 支持以下格式:
    1. 文件对象: open() 返回的类型。
    2. 数组格式 1: [fileName, filePath]
    3. 数组格式 2: [fileName, mimeType, filePath]
    4. 普通字符串: 非文件参数。
  • 示例:
    // 文档地址 https://docs.hamibot.com/
    var url = 'https://api.example.com/upload';
    var res = http.postMultipart(url, {
        appId: 'adcdefghijk',
        file: open('/sdcard/1.txt')
    });
    log(res.body.string());
    

自定义请求

  • 函数: http.request(url[, options, callback])
  • 用途: 灵活指定请求方法、头部和内容类型。
  • Options 属性:
    • headers: 键值对形式的 HTTP 头部信息。
    • method: 请求方法,包括 "GET", "POST", "PUT", "DELETE", "PATCH"。
    • contentType: 内容类型,例如 "text/plain", "application/json"。

3. 执行方式 (同步与异步)

  • 同步执行: 如果不加 callback 参数,请求将阻塞、同步地执行,函数直接返回 Response 对象。
  • 异步执行: 如果添加 callback 参数,请求异步执行。回调函数参数为 (res, err)
    // 文档地址 https://docs.hamibot.com/
    http.get('https://www.baidu.com', {}, function (res, err) {
        if (err) {
            console.error(err);
            return;
        }
        log(res.body.string());
    });
    

4. 响应对象 (Response)

请求完成后返回的 Response 对象包含以下常用属性:

  • statusCode: 状态码。
  • body: 响应体,常用方法 body.string() 获取字符串内容。
  • headers: 响应头部信息。

确保在使用 JavaScript 编写脚本时,避免使用箭头函数表达式或默认参数值,以兼容 Hamibot 的 Rhino 1.7.15 引擎。

ℹ️ 本回答由 AI 生成,内容仅供参考