【问题标题】:php-aria2 JSONRPC Empty reply from serverphp-aria2 JSONRPC 来自服务器的空回复
【发布时间】:2013-04-29 11:28:38
【问题描述】:

我使用php-aria2 下载远程文件。但是对127.0.0.1:8100/jsonrpc 的所有请求都返回null。 aria2c 在命令行中运行良好。

当我从命令行运行时

curl http://127.0.0.1:6800/jsonrpc -H "Content-Type: application/json" -H "Accept: application/json" --data '{{"jsonrpc": "2.0","id":1, "method": "aria2.getGlobalStat", "params":[]}' -G

我明白了:

curl: (52) 来自服务器的空回复

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: rpc json-rpc aria2


    【解决方案1】:

    简单的解决方法是删除多余的“{”并使用 POST 而不是 GET:

    curl http://127.0.0.1:6800/jsonrpc -H "Content-Type: application/json" -H "Accept: application/json" --data '{"jsonrpc": "2.0","id":1, "method": "aria2.getGlobalStat", "params":[]}'
    

    aria2 在 GET 请求中支持 JSON-RPC,但需要正确编码。见http://aria2.sourceforge.net/manual/en/html/aria2c.html#json-rpc-using-http-get

    【讨论】:

      【解决方案2】:
      curl -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","id":"qwer","method":"aria2.getGlobalStat", "params": []}' http://localhost:6800/jsonrpc
      

      如果我们 --rpc-secret=TOKEN 需要这个

      curl -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","id":"qwer","method":"aria2.getGlobalStat", "params": ["token:TOKEN"]}' http://localhost:6800/jsonrpc
      

      【讨论】:

        【解决方案3】:
        curl http://127.0.0.1:6800/jsonrpc --data "{\"jsonrpc\": \"2.0\",\"id\":1, \"method\": \"aria2.getGlobalStat\", \"params\":[]}"
        

        curl http://127.0.0.1:6800/jsonrpc --data "{"""jsonrpc""": """2.0""","""id""":1, """method""": """aria2.getGlobalStat""", """params""":[]}"
        

        【讨论】:

          猜你喜欢
          • 2012-08-10
          • 2015-12-20
          • 2017-08-27
          • 2013-07-16
          • 2015-11-05
          • 1970-01-01
          • 2015-07-16
          • 1970-01-01
          • 2012-08-21
          相关资源
          最近更新 更多