Skip to content

Http ​

Http 用来请求自己的后端:拉配置、登录、传文件、下图片。页面脚本和任务脚本都能用。地址写完整 URL。

默认超时:连接 10 秒,读 / 写各 30 秒。post 的 Content-Type 默认是 application/json; charset=utf-8。

javascript
let res = Http.get('https://script.deeke.cn/api/userInfo');
console.log(res);
方法作用
get(url, headers?)GET
post(url, params, headers?)JSON POST
postFile(url, files, params, callback)上传文件
download(url, destPath, headers?)下载到本地路径
postStream(...)按行读流式响应
setTimeout / setConnectTimeout / setReadTimeout / setWriteTimeout超时

get(url, headers) ​

参数:

  • url {string} 完整地址
  • headers {object} 可选请求头

返回: 响应体。示例接口返回 { code, msg, data }

javascript
let res = Http.get('https://script.deeke.cn/api/userInfo');
console.log(res);

let res2 = Http.get('https://script.deeke.cn/api/userInfo', {
    'Content-type': 'application/json; charset=utf-8'
});
console.log(res2);

post(url, params, headers) ​

参数:

  • url {string} 完整地址
  • params {object} JSON 请求体
  • headers {object} 可选请求头

返回: 响应体

javascript
let params = {
    account: 'DeekeScript',
    password: 'DeekeScript'
};
let res = Http.post('https://script.deeke.cn/api/login', params);
console.log(res);

postFile(url, files, params, callback) ​

参数:

  • url {string} 完整地址
  • files {File[]} 要上传的文件
  • params {object} 一并提交的字段
  • callback {object} success / fail

用 java.io.File 构造文件。成功时在 success 里读 response.body() 和 response.code()。

javascript
let File = java.io.File;
let files = [new File('文件地址'), new File('文件地址2')];
let params = { username: 'DeekeScript' };

Http.postFile('https://script.deeke.top/api/fileUpload', files, params, {
    success: function (response) {
        let body = response.body().string();
        let code = response.code();
        console.log(body, code);
    },
    fail: function (response) {
        console.log('上传失败');
    }
});

download(url, destPath, headers) ​

参数:

  • url {string} 文件地址
  • destPath {string} 本地保存路径
  • headers {object} 可选请求头

返回: 下载结果

路径可用 Files.getCachePath()。要进相册再交给 MediaStore。

javascript
let file = Files.getCachePath() + '/1.png';
Http.download('https://doc.deeke.cn/logo.webp', file, {});
let file2 = MediaStore.saveImage(file);
console.log(file, file2);

Http.download('https://doc.deeke.cn/logo.webp', file, {
    Authorization: 'Bearer token'
});

setTimeout(connectSeconds, readSeconds, writeSeconds) ​

参数:

  • connectSeconds {number} 连接超时(秒)
  • readSeconds {number} 读取超时(秒)
  • writeSeconds {number} 写入超时(秒)

返回: {void}

同时改三种超时。

javascript
Http.setTimeout(5, 20, 20);

setTimeout(seconds) ​

参数:

  • seconds {number} 连接、读取、写入共用的秒数

返回: {void}

javascript
Http.setTimeout(60);

setConnectTimeout(seconds) ​

参数:

  • seconds {number} 连接超时(秒),默认 10
javascript
Http.setConnectTimeout(5);

setReadTimeout(seconds) ​

参数:

  • seconds {number} 读取超时(秒),默认 30
javascript
Http.setReadTimeout(60);

setWriteTimeout(seconds) ​

参数:

  • seconds {number} 写入超时(秒),默认 30
javascript
Http.setWriteTimeout(60);

postStream(url, params, headers, onData, onError) ​

参数:

  • url {string} 完整地址
  • params {object} 请求体
  • headers {object} 可选请求头
  • onData {function} 每收到一行调用,参数是该行字符串
  • onError {function} 出错时调用,参数是错误信息

按行读服务端输出,适合 SSE 一类流。也可以省略 headers,直接 postStream(url, params, onData, onError)。

javascript
Http.postStream(
    'https://api.example.com/stream',
    { query: 'test' },
    { 'Content-Type': 'application/json' },
    function (data) {
        console.log('收到数据:', data);
    },
    function (error) {
        console.log('错误:', error);
    }
);

相关 ​