php-aria2 JSONRPC 来自服务器的空回复
Posted
技术标签:
【中文标题】php-aria2 JSONRPC 来自服务器的空回复【英文标题】:php-aria2 JSONRPC Empty reply from server 【发布时间】: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) 来自服务器的空回复
有人知道如何解决这个问题吗?
【问题讨论】:
【参考方案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""":[]"
【讨论】:
以上是关于php-aria2 JSONRPC 来自服务器的空回复的主要内容,如果未能解决你的问题,请参考以下文章
GuzzleHttp \ Exception \ RequestException cURL错误52:来自服务器的空回复
knitcitations citet 给出“来自服务器的空回复”
php guzzle [curl] 52 来自服务器的空回复