文章目录
- JSONRPC - 换取USERID
- 简述
- 换取USERID
- 1. 代码示例
- 2. 换取结果
JSONRPC - 换取USERID
简述
从Odoo JSONRPC 接口入门篇,可以发现我们直接传入了USERID,这只是为了方便快速测试。
其实按照常规流程,应该通过【用户名USERNAME】和【用户密码PASSWORD】来换取USERID参数,以防止在正式环境与测试环境中进行接口测试时,还得手动变更,另外也稍微安全一些,毕竟给用户密码总比给用户ID体验上也稍显专业吧。
换取USERID
1. 代码示例
# -*- coding:utf-8 -*-
import json
import uuid
import pprint
import urllib.request
HOST = "localhost"
PORT = 8069
URL = "http://%s:%s/jsonrpc" % (HOST, PORT)
DB_NAME = "dbname"
USERNAME = "admin"
PASSWORD = "admin"
UUID = str(uuid.uuid4())
data = {
"id": UUID, # 随机码
"jsonrpc": "2.0", # 固定值
"method": "call", # 固定值
"params": {
"service": "common", # 固定值
"method": "login", # 固定值
"args": [
DB_NAME, # 数据库名称
USERNAME, # 接口用户名称
PASSWORD, # 接口用户密码
]
}
}
req = urllib.request.Request(url=URL, data=json.dumps(data).encode(), headers={"Content-type": "application/json"})
reply = json.loads(urllib.request.urlopen(req).read().decode('UTF-8'))
pprint.pprint(reply)
2. 换取结果
我们可以根据换取的result是否为False来确定是否换取成功
如果换取成功,我们就可以将Odoo JSONRPC 接口入门篇中的USERID直接赋值并继续使用,后续使用方法无变化。
########################返回结果结构#######################
------------------------成功结果---------------------------
{'id': '0ecb015e-e41a-440f-89e8-253f80d22701', 'jsonrpc': '2.0', 'result': 2}
Process finished with exit code 0
---------------------------------------------------------
------------------------失败结果---------------------------
{'id': 'def93dcc-0944-45d5-ac53-35f0003b4877', 'jsonrpc': '2.0', 'result': False}
Process finished with exit code 0
---------------------------------------------------------
#########################################################
-
正确返回
-
错误返回
🎉如果对你有所帮助,可以点赞、关注、收藏起来,不然下次就找不到了🎉
【点赞】⭐️⭐️⭐️⭐️⭐️
【关注】⭐️⭐️⭐️⭐️⭐️
【收藏】⭐️⭐️⭐️⭐️⭐️
Thanks for watching.
–Kenny