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);
}
);