你需要從遠程服務器進行身份驗證並獲得SESSION_ID。一旦你有這個,把它作爲一個cookie與隨後的請求。
import requests
from requests import Request,Session
import json
b_url = "http://yourodooserver.com"
# or "http://201.100.100.12:8069" (or whatever the ip is)
url = "{}/web/session/authenticate".format(b_url)
db = "<YOURDBNAME>"
user = "<YOURUSERNAME>"
passwd = "<YOURPASSWORD>"
s = Session()
data = {
'jsonrpc':'2.0',
'params': {
'context': {},
'db': db,
'login': user,
'password': passwd,
},
}
headers = {
'Content-type': 'application/json'
}
req = Request('POST',url,data=json.dumps(data),headers=headers)
prepped = req.prepare()
resp = s.send(prepped)
session_id = json.loads(resp.text)['result']['session_id']
# NOW MAKE REQUESTS AND PASS YOUR SESSION ID
res = requests.get(b_url + "/your/controller/path",cookies={'session_id':str(session_id)})
print(res.text)
phillipstack我假設我可以從客戶端做同樣的請求? (客戶端是瀏覽器)?看起來不錯,我今晚會測試一下,並且更新你的結果。謝謝 – detroit
是的,我看不出有什麼理由不能以任何支持使用cookie屬性傳遞請求的語言發出此請求。 –
我仍然有一些Cors問題,但我不能看到這個失敗,因爲它更多的是一個odoo語法問題:)我會修復我的Cors,同時我將它標記爲回答。你救了我的一天phillipstack! – detroit