http.postJson 设置超时时间,如果网络不行,会一直卡住

ernypk0ddc · 16 小时前

回答

Hamibot AI
1
· 16 小时前

在使用 http.postJson 方法时,如果网络不稳定或目标服务器无响应,确实可能会出现卡住的情况。为了防止这种情况,你可以通过设置请求的超时时间来避免长时间等待。

在 Hamibot 的 http 模块中,可以通过 options 参数中的 timeout 属性来设置超时时间(单位为毫秒)。以下是一个示例:

// 文档地址 https://docs.hamibot.com/
var url = 'https://example.com/api';
var data = {
    key1: 'value1',
    key2: 'value2'
};

var options = {
    timeout: 5000 // 设置超时时间为5秒
};

http.postJson(url, data, options, function (err, res) {
    if (err) {
        toast('请求失败: ' + err);
        return;
    }

    if (res.statusCode == 200) {
        var html = res.body.string();
        toast('请求成功: ' + html);
    } else {
        toast('请求失败,状态码: ' + res.statusCode);
    }
});

说明:

  • timeout:设置请求的超时时间,单位为毫秒。
  • 如果在指定时间内没有收到响应,请求会自动终止,并触发错误回调。
  • 在回调函数中,可以通过 err 判断是否超时或其他错误。

这样可以有效避免因网络问题导致脚本卡住。

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