0

XBMC で「ライブラリの更新」コマンドを実行するスクリプトを作成しようとしています。

実行しようとすると:

url = 'http://root:libreelec@%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:libreelec@%IP_ADDRESS%:12345/jsonrpc?'
    data = json.dumps({"request": {"jsonrpc": "2.0", "method": "VideoLibrary.Scan"}})
    r = requests.get(url, params=data)

ライブラリが更新されていないことを意味します。

私が間違っていることは何ですか?

4

1 に答える 1

2

URL の「ルート」は誰ですか? すべてがとても簡単です:

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

/jsonエンドポイントは POST も受け入れ、適切な JSON リクエストに変換しますrequest.postdict

于 2016-11-14T11:50:46.870 に答える