2016-11-12 19 views
0

我试图编写一个脚本,它将在我的XBMC上运行“更新库”命令。从Python脚本更新XBMC库

当我尝试运行:

url = 'http://root:[email protected]%IP_ADDRESS%:12345/jsonrpc?request={"jsonrpc": "2.0", "method": "VideoLibrary.Scan"}' 
r = requests.get(url) 

我看到该库已更新,但我发现了以下错误:

Traceback (most recent call last): 
    File "<input>", line 2, in <module> 
    File "C:\Python27\lib\site-packages\requests\api.py", line 70, in get 
    return request('get', url, params=params, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\api.py", line 56, in request 
    return session.request(method=method, url=url, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 475, in request 
    resp = self.send(prep, **send_kwargs) 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 596, in send 
    r = adapter.send(request, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\adapters.py", line 473, in send 
    raise ConnectionError(err, request=request) 
ConnectionError: ('Connection aborted.', BadStatusLine("''",)) 

我试图修改代码:

url = 'http://root:[email protected]%IP_ADDRESS%:12345/jsonrpc?' 
    data = json.dumps({"request": {"jsonrpc": "2.0", "method": "VideoLibrary.Scan"}}) 
    r = requests.get(url, params=data) 

但它似乎不工作,这意味着我没有看到图书馆更新。

我在做什么错了?

回答

2

谁在URL中“根”?一切显得简单:

url = 'http://libreelec:12345/jsonrpc' 
data = {"jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "1"} 
r = requests.post(url, json=data) 

/json端点接受POST,以及,request.post将处理dict成你一个适当的JSON请求。

+0

我仍然得到相同的结果,XBMC库已更新,我也收到错误消息。有任何想法吗? –

+0

我忘了“id”参数(从您的帖子中盲目复制粘贴JSON)。现在JSON有效负载是正确的,但我不能告诉其他部分,如Kodi设置(您需要启用远程控制Kodi)或JSON-RPC端点地址。你应该自己检查一下。 –