RPC 常用方法速查:添加任务、查进度、暂停续传
一次调用长什么样
向本机 6800 端口的 JSON-RPC 路径 POST 一个请求体(先开启 RPC,见开启 RPC):
{
"jsonrpc": "2.0",
"id": "qwer",
"method": "aria2.addUri",
"params": ["token:你的密钥", ["下载直链"]]
}
返回结果里的 result 就是新任务的 GID——16 位十六进制字符串(如 2089b05ecca3d829),之后查状态、暂停、删除全靠它。查询时允许只写 GID 前缀,只要不与其他任务混淆即可。
方法清单
任务操作
| 方法 | 作用 |
|---|---|
| aria2.addUri | 加 HTTP/FTP/SFTP/BT 直链任务(磁力链也走它) |
| aria2.addTorrent | 上传 .torrent 加任务 |
| aria2.addMetalink | 上传 metalink 加任务 |
| aria2.remove / forceRemove | 删除任务(force 不等收尾) |
| aria2.pause / forcePause | 暂停 |
| aria2.pauseAll / forcePauseAll | 暂停全部 |
| aria2.unpause / unpauseAll | 恢复 |
| aria2.changeUri | 改任务的源地址 |
| aria2.changePosition | 调整等待队列位置 |
状态查询
| 方法 | 作用 |
|---|---|
| aria2.tellStatus | 按 GID 查单个任务详情,可用 keys 参数只取需要的字段 |
| aria2.tellActive / tellWaiting / tellStopped | 按队列段批量查询 |
| aria2.getUris / getFiles / getPeers / getServers | 任务的地源、文件、peer、服务器明细 |
| aria2.getGlobalStat | 总速度、活动/等待/停止任务数 |
| aria2.getVersion / getSessionInfo | 版本与会话信息 |
全局控制
| 方法 | 作用 |
|---|---|
| aria2.changeGlobalOption | 运行中改全局参数(如限速) |
| aria2.getGlobalOption | 读当前全局参数 |
| aria2.changeOption | 改单个任务参数 |
| aria2.saveSession | 立即保存会话 |
| aria2.purgeDownloadResult / removeDownloadResult | 清理完成记录 |
| aria2.shutdown / forceShutdown | 停止服务 |
| system.multicall | 一次调用打包多个方法 |
| system.listMethods / listNotifications | 列出方法与通知(免密钥) |
实用例子
查某个任务已下载多少(keys 过滤关键字段):
{
"jsonrpc": "2.0",
"id": "qwer",
"method": "aria2.tellStatus",
"params": ["token:你的密钥", "2089b05ecca3d829", ["gid", "totalLength", "completedLength"]]
}
调试建议
手动验证时用任意 HTTP 客户端发 POST 即可;前端开发可先调 system.listMethods 确认接口活着,再用 tellStatus 的 keys 过滤拿最小数据量。WebSocket 通知(任务开始/完成/出错等事件推送)走同一端口,适合做实时界面。