Autox.js 中文文档 下载 App

Autox.js 网络请求 http WebSocket 让脚本和服务器对话

脚本不只是"点屏幕",还能"和服务器对话"

Autox.js v7 内置了 HTTP 和 WebSocket 支持(Node.js 模式下更完整)。这意味着你的脚本可以:

HTTP 请求

Rhino 模式

// GET 请求
let res = http.get("https://api.example.com/tasks");
console.log("状态码:" + res.statusCode);
console.log("响应:" + res.body.string());

// 带参数
let res2 = http.get("https://api.example.com/search", {
    params: { keyword: "autox", page: 1 }
});

// POST 请求(JSON)
let res3 = http.postJson("https://api.example.com/submit", {
    name: "test",
    data: [1, 2, 3]
});
console.log("POST 响应:" + res3.body.json());

// 带自定义 Header
let res4 = http.get("https://api.example.com/protected", {
    headers: {
        "Authorization": "Bearer your-token",
        "User-Agent": "Autox.js Bot"
    }
});

Node.js 模式(更完整)

"nodejs";

// 用 axios(需要 npm install axios)
const axios = require("axios");

async function main() {
    try {
        let res = await axios.get("https://api.example.com/tasks", {
            params: { keyword: "test" },
            headers: { "Authorization": "Bearer xxx" },
            timeout: 5000
        });
        console.log("拿到数据:", res.data);
        
        // 处理拿到的数据
        res.data.forEach(item => {
            console.log("任务:" + item.title);
        });
    } catch (err) {
        console.error("请求失败:" + err.message);
    }
}

main();

WebSocket 实时通信

v7 内置 WebSocket 支持,可以做实时双向通信——脚本发消息给服务器、服务器也能随时推消息给脚本。

客户端

let ws = http.ws("wss://api.example.com/realtime");

// 连接成功
ws.on("open", () => {
    console.log("WebSocket 已连接");
    ws.send("Hello from Autox.js!");
});

// 收到消息
ws.on("message", (data) => {
    console.log("收到:" + data);
    
    // 解析 JSON 消息并执行
    let msg = JSON.parse(data);
    if (msg.action === "click" && msg.target === "button_a") {
        text("按钮A").findOne().click();
    }
});

// 错误
ws.on("error", (err) => {
    console.error("WebSocket 错误:" + err);
});

// 断开
ws.on("close", () => {
    console.log("连接断开,3 秒后重连");
    sleep(3000);
    // 重连逻辑
});

实战:远程控制脚本

服务器下发指令 → 脚本执行 → 脚本上报结果:

服务器 → "点击登录按钮"
脚本 → 执行点击
脚本 → 上报 "已点击,登录响应成功"

这相当于把 Autox.js 变成了一个远程可控制的手机代理。

实战:每日任务自动领取

console.show();

// 从服务器获取今天的任务列表
let res = http.getJson("https://api.example.com/daily-tasks", {
    headers: { "User-Agent": "autox-bot/1.0" }
});

if (res.statusCode === 200 && res.body.tasks) {
    console.log("今日有 " + res.body.tasks.length + " 个任务");
    
    res.body.tasks.forEach(task => {
        console.log("执行:" + task.name);
        executeTask(task);
        
        // 上报执行结果
        http.postJson("https://api.example.com/task-report", {
            taskId: task.id,
            result: "success",
            timestamp: Date.now()
        });
    });
} else {
    console.log("获取任务失败");
}

function executeTask(task) {
    launchApp(task.targetApp);
    sleep(2000);
    // ... 根据 task 内容执行操作
}

网络请求注意事项

问题说明
权限需要网络权限(Autox.js 打包的 APK 默认会声明)
SSL 证书自签名证书可能被拒绝,开发环境可临时关闭校验
超时网络请求可能卡住,始终加 timeout 和 try-catch
后台执行Android Doze 模式下后台网络请求会被延迟
并发用 threads 模块或 Node.js async 处理并发请求

Node.js 模式的优势

HTTP/WebSocket 在 Node.js 模式下有以下优势:

安全提醒

  1. 不要硬编码密钥——API key、Token 等敏感信息不要写在源码里,用户输入或远程下发
  2. HTTPS 优先——生产环境强制用 HTTPS,防止中间人攻击
  3. 用户隐私——上传用户数据(手机号、位置等)前必须经过用户同意
  4. 频率控制——不要对目标服务器发过高频率的请求,可能被限流或封号