2016-05-08 8 views
0

私はPythonリクエストライブラリを使用して、自分のRaspberry Piで動作するDeluge Web torrentboxにJSONリクエストを送信しています。上記のコードを実行するにはDeluge Web JSON APIで認証されていないエラー

import requests 
payload='{"method": "auth.login", "params": ["MY-PASSWORD"], "id": 1}' 
r = requests.post("http://192.168.0.104:8112/json", data=payload) 
print r.headers 
print r.text 
payload2='{"method": "core.add_torrent_magnet", "params": ["MAGNET-URI", {}], "id": 2}' 
q = requests.post("http://192.168.0.104:8112/json", data=payload2) 
print q.headers 
print q.text 
print "---------------" 

は、私が成功した認証を取得し、私の第二の要求は、

OUTPUT

{ 'のContent-エンコーディング' を "認証されていません" エラーを与えます: " gzip '、' Transfer-Encoding ':'チャンク '、 ' Set-Cookie ':' _session_id = d888b2548fd6966490eef4b3657a1b342169; 有効期限=日曜日、2015年5月8日14:22:45 GMT; 「コンテンツタイプ」:「application/x-json」、「Path =/json」、「Server」: 「TwistedWeb/12.0.0」、「Date」:「Sun、08 May 2016 13:22:45 GMT」、 } { "ID":1、 "結果" 真 "エラー":ヌル}



{ '転送エンコード': 'チャンク'、 '日': ' Sun、08 May 2016 13:22:45 GMT '、' Server ':' TwistedWeb/12.0.0 '、' Content-Type ': ' application/x-json '、' Content-Encoding ':' gzip '} {"id":2、 "result": null、 "error":{"メッセージ": "認証されていません"、 "コード":1}}

curlを使用して2番目のリクエストを実行すると動作します。

curl -b cookies.txt --compressed -i -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"method": "core.add_torrent_magnet", "params": ["MAGNET_URI", {}], "id": 1}' http://localhost:8112/json 

答えて

0

これが表示されます。 セッションCookieは、異なるオブジェクトを使用して各リクエストを実行したため、共有されませんでした。

r=requests.session() 

次に、r個のPOST要求を呼び出して各要求を実行しました。

関連する問題