aria2使用ajax调用

那年仲夏 提交于 2019-12-01 02:50:39

1. aria2

1.1. ajax调用demo

自定义工具下载下载地址

页面调用

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
    </head>
    <body>

    </body>
    <script>
        //https://static.zhihu.com/heifetz/vendor.7177302d6c7d65981005.js
        var url1 = "http://localhost:6800/jsonrpc?tm=1569769711558";
        var downData=[{
                "jsonrpc": "2.0",
                "method": "aria2.addUri",
                "id": 456,
                "params": [
                    ["http://fastsoft.onlinedown.net/down/PCQQ9.1.8.26211.exe"], {
                        "split": "5",
                        "max-connection-per-server": "5",
                        "seed-ratio": "0"
                    }
                ]
            }, {
                "jsonrpc": "2.0",
                "method": "aria2.addUri",
                "id": 457,
                "params": [
                    ["https://cdn.bootcss.com/jquery/3.4.1/jquery.js"], {
                        "split": "5",
                        "max-connection-per-server": "5",
                        "seed-ratio": "0"
                    }
                ]
            }, {
                "jsonrpc": "2.0",
                "method": "aria2.addUri",
                "id": 458,
                "params": [
                    ["https://static.zhihu.com/heifetz/vendor.7177302d6c7d65981005.js"], {
                        "split": "5",
                        "max-connection-per-server": "5",
                        "seed-ratio": "0"
                    }
                ]
            }];

        $.ajax({
            url: url1,
            data: JSON.stringify(downData),
            type: "post",
            //async: false,//false为同步
            dataType: "json",
            success: function(obj) {
                console.log(obj)
            }
        });
    </script>
</html>
idid

1.2. json-rpc命令探究

(译) JSON-RPC 2.0 规范(中文版)
英文版
nodejs调用
使用JSONRPC操作附带token(secret)的aria2

  • 设置全局下载路径命令
{"jsonrpc":"2.0","method":"aria2.changeGlobalOption","id":"QXJpYU5nXzE1NzA2Njk1NDNfMC4yNDIwMjMzMzExMTM2MDE5Nw==","params":[{"dir":"Aria2Data9999"}]}
  • 获取全局设置参数
{"jsonrpc":"2.0","method":"aria2.getGlobalStat","id":"QXJpYU5nXzE1NzA2Njk2NDBfMC4xNjI1OTU5MDUyNDkwMDE4"}

  • 不知名参数1
{"jsonrpc":"2.0","method":"aria2.tellActive","id":"QXJpYU5nXzE1NzA2Njk0NzBfMC4zOTcxNDYyMDMyNTEzODE1","params":[["gid","totalLength","completedLength","uploadSpeed","downloadSpeed","connections","numSeeders","seeder","status","errorCode","verifiedLength","verifyIntegrityPending"]]}
  • 参考设置参数,带设置文件夹
{"jsonrpc": "2.0", "id": "qwer",
 "method": "aria2.addUri",
 "params": ["token:secret",["http://www.baidu.com"],{"out":"index.html" ,"dir":"/home/"}]
}
  • 设置限速

      {"jsonrpc":"2.0","method":"aria2.changeGlobalOption","id":"QXJpYU5nXzE1NzA2NzM1NzZfMC42NTU0NTc2Nzc1ODYwMjIx","params":[{"lowest-speed-limit":"1000"}]}
  • 暂停某一个

{"jsonrpc":"2.0","method":"aria2.tellStopped","id":1,"params":[0,1000]}

  • 设置同时下载三个
{"jsonrpc":"2.0","method":"aria2.changeGlobalOption","id":1,"params":[{"max-overall-download-limit":"100 KiB","max-overall-upload-limit":"0 KiB","max-concurrent-downloads":"3","min-split-size":"10 MiB","user-agent":"Transmission/2.77","dir":"Aria2Data"}]}: 

  • 查看所有激活状态
{"jsonrpc":"2.0","method":"aria2.tellActive","id":1}

结果为

{"id":1,"jsonrpc":"2.0","result":[{"bitfield":"f800e000f0000000f0000000e0000000","completedLength":"22904832","connections":"5","dir":"Aria2Data","downloadSpeed":"79879","files":[{"completedLength":"19922944","index":"1","length":"132129752","path":"Aria2Data\/w.p.s.8894.20.2735.exe","selected":"true","uris":[{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/w.p.s.8894.20.2735.exe"}]}],"gid":"596d2e6c54b04f2f","numPieces":"127","pieceLength":"1048576","status":"active","totalLength":"132129752","uploadLength":"0","uploadSpeed":"0"},{"bitfield":"f0300f0000e0000e0000","completedLength":"18464768","connections":"4","dir":"Aria2Data","downloadSpeed":"24521","files":[{"completedLength":"16777216","index":"1","length":"83201568","path":"Aria2Data\/PCQQ9.1.8.26211.exe","selected":"true","uris":[{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"used","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"},{"status":"waiting","uri":"http:\/\/fastsoft.onlinedown.net\/down\/PCQQ9.1.8.26211.exe"}]}],"gid":"ff91af4e5696519d","numPieces":"80","pieceLength":"1048576","status":"active","totalLength":"83201568","uploadLength":"0","uploadSpeed":"0"}]}

  • 结束选中的两个
[{"jsonrpc":"2.0","method":"aria2.pause","id":1,"params":["596d2e6c54b04f2f"]},{"jsonrpc":"2.0","method":"aria2.pause","id":2,"params":["ff91af4e5696519d"]}]


结果为

  • 选中两个取消暂停
[{"jsonrpc":"2.0","method":"aria2.unpause","id":1,"params":["ff91af4e5696519d"]},{"jsonrpc":"2.0","method":"aria2.unpause","id":2,"params":["596d2e6c54b04f2f"]}]

返回结果

  • 添加一个微信下载文件并设置保存地址,添加后暂停等
[{"jsonrpc":"2.0","method":"aria2.addUri","id":1,"params":[["微信下载地址.exe"],{"out":"微信123","dir":"./微信文件夹","pause":"true","split":"5","max-connection-per-server":"5","seed-ratio":"0"}]}]

  • 如果是批量下载采用循环遍历
{"jsonrpc":"2.0","method":"aria2.addUri","id":"QXJpYU5nXzE1NzA2NzY3MDVfMC4xNjEyODc3ODk5ODUxODAxMg==","params":[["https://static.zhihu.com/heifetz/vendor.7177302d6c7d65981005.js"],{}]}

{"jsonrpc":"2.0","method":"aria2.addUri","id":"QXJpYU5nXzE1NzA2NzY3MDVfMC42NzU0NTc4Njc3OTU3Mjg0","params":[["https://cdn.bootcss.com/jquery/3.4.1/jquery.js"],{}]}

  • 移除任务,对应返回的result。把result作为进程id。
    选中两个操作也是循环遍历一个一个命令。是否可以优化为[]数组参数的形式。
{"jsonrpc":"2.0","method":"aria2.removeDownloadResult","id":"QXJpYU5nXzE1NzA2NzY4NzBfMC40OTkwNTE5MDg1NTU1OTUzNA==","params":["f8d403e37f51b63c"]}
  • 关于批量操作的猜想
    AriaNg的操作参数是{} 一个对象,而http://aria2c.com/的操作参数是数组》》把两个操作命令合在一个数组中

  • aira2后台控制台的尝试

直接的后台带配置启动命令 aria2c.exe --conf-path=aria2.conf

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!