AHUTong 的 Rust 核心实现,提供 Android JNI 接口以及用于桌面端调试/独立运行的 HTTP 服务器。
- Rust (Cargo)
- Python 3 (用于运行测试脚本)
服务器默认监听 3000 端口。
# 启用日志输出
$env:RUST_LOG="info" # PowerShell
export RUST_LOG=info # Bash
cargo run --bin ahutong-sdk --features server启动时,服务器会生成一个随机的安全 Token,请留意日志输出:
Token: <YOUR_TOKEN_HERE>
我们提供了一个 Python 脚本,用于自动编译、运行并测试服务器接口。
python test_server.py请求时必须在 Header 中携带 X-AHUTONG-TOKEN。
⚠️ 注意 (Windows PowerShell 用户): PowerShell 中curl是Invoke-WebRequest的别名。必须使用curl.exe才能运行以下命令。 JSON 数据中的双引号需要转义(如\"),或者使用单引号包裹整个 JSON 字符串。
健康检查 (Health Check)
curl.exe http://127.0.0.1:3000/health登录成功后,Cookies 会自动保存在服务器内存中,供后续接口使用。
curl.exe -X POST http://127.0.0.1:3000/login `
-H "X-AHUTONG-TOKEN: <YOUR_TOKEN>" `
-H "Content-Type: application/json" `
-d '{\"username\": \"你的学号\", \"password\": \"你的密码\"}'查询考试安排
curl.exe -H "X-AHUTONG-TOKEN: <YOUR_TOKEN>" http://127.0.0.1:3000/exam查询课表
curl.exe -H "X-AHUTONG-TOKEN: <YOUR_TOKEN>" http://127.0.0.1:3000/schedule查询成绩
# 查询当前登录用户成绩
curl.exe -H "X-AHUTONG-TOKEN: <YOUR_TOKEN>" http://127.0.0.1:3000/grade
# 查询特定学号成绩 (需有权限)
curl.exe -H "X-AHUTONG-TOKEN: <YOUR_TOKEN>" "http://127.0.0.1:3000/grade?student_id=10086"查询余额
curl.exe -H "X-AHUTONG-TOKEN: <YOUR_TOKEN>" http://127.0.0.1:3000/ycard/balance获取支付码
curl.exe -H "X-AHUTONG-TOKEN: <YOUR_TOKEN>" http://127.0.0.1:3000/ycard/qrcode查看当前 Cookies (JSON)
curl.exe -H "X-AHUTONG-TOKEN: <YOUR_TOKEN>" http://127.0.0.1:3000/cookies/dump初始化 Cookies (从 Android 端导入)
curl.exe -X POST http://127.0.0.1:3000/init `
-H "X-AHUTONG-TOKEN: <YOUR_TOKEN>" `
-H "Content-Type: application/json" `
-d '{\"cookies_json\": \"[...你的cookies...]\"}'如果你希望编译后直接把 *.so 放到 Android 工程的 jniLibs/arm64-v8a 目录下,可以指定输出目录:
# 输出到当前仓库的 ./jniLibs/arm64-v8a
cargo ndk -t arm64-v8a -o ./jniLibs build --release
# 如需包含本地服务器功能
cargo ndk -t arm64-v8a -o ./jniLibs build --release --features server输出文件示例:./jniLibs/arm64-v8a/libahutong_rs.so
适用于需要通过 HTTP 接口调用 Rust 核心功能的场景。
cargo ndk -t arm64-v8a build --release --features server如果不使用本地服务器功能,可以省略 server 特性。
cargo ndk -t arm64-v8a build --release