我碰到了一个odoo,它给出了200个ok状态,但作为响应,它给出了xml错误响应。我还附上邮递员的截图。
我只是跟踪odoo的官方文档,并希望得到服务器版本的响应。你能告诉我如何在邮递员中得到服务器版本的响应吗? https://www.odoo.com/documentation/13.0/webservices/odoo.html#logging-in
主机网址: 'https://duduslimmer-odoo-huge-stage-545860.dev.odoo.com',
数据库url:‘duduslimmer-odoo-大舞台-545860’,
我想要这样的回应:
{
"server_version": "13.0",
"server_version_info": [13, 0, 0, "final", 0],
"server_serie": "13.0",
"protocol_version": 1,
}
但得到这样的回应:
<?xml version='1.0'?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value>
<int>1</int>
</value>
</member>
<member>
<name>faultString</name>
<value>
<string>Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/addons/base/controllers/rpc.py", line 69, in xmlrpc_2
response = self._xmlrpc(service)
File "/home/odoo/src/odoo/odoo/addons/base/controllers/rpc.py", line 48, in _xmlrpc
params, method = loads(data)
File "/usr/lib/python3.6/xmlrpc/client.py", line 1019, in loads
p.feed(data)
File "/usr/lib/python3.6/xmlrpc/client.py", line 439, in feed
self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column 0
</string>
</value>
</member>
</struct>
</value>
</fault>
</methodResponse>
您能检查一下我的帖子URL正确的意思吗?我在这个网址中也提到了单词“版本”。
当发送版本的json:Json:时得到的响应
{
"methodCall": {
"methodName": "version",
"params": "omi"
}
}
Json答复:
{
"jsonrpc": "2.0",
"id": null,
"error": {
"code": 200,
"message": "Odoo Server Error",
"data": {
"name": "werkzeug.exceptions.BadRequest",
"debug": "Traceback (most recent call last):\n File \"/home/odoo/src/odoo/odoo/http.py\", line 656, in _handle_exception\n return super(JsonRequest, self)._handle_exception(exception)\n File \"/home/odoo/src/odoo/odoo/http.py\", line 314, in _handle_exception\n raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])\n File \"/home/odoo/src/odoo/odoo/tools/pycompat.py\", line 87, in reraise\n raise value\n File \"/home/odoo/src/odoo/odoo/http.py\", line 698, in dispatch\n result = self._call_function(**self.params)\n File \"/home/odoo/src/odoo/odoo/http.py\", line 322, in _call_function\n raise werkzeug.exceptions.BadRequest(msg % params)\nwerkzeug.exceptions.BadRequest: 400 Bad Request: <function RPC.xmlrpc_2 at 0x7f8a69ab3a60>, /xmlrpc/2/common: Function declared as capable of handling request of type 'http' but called with a request of type 'json'\n",
"message": "400 Bad Request: <function RPC.xmlrpc_2 at 0x7f8a69ab3a60>, /xmlrpc/2/common: Function declared as capable of handling request of type 'http' but called with a request of type 'json'",
"arguments": [],
"exception_type": "internal_error"
}
}
}
发布于 2020-07-06 19:26:04
试着用那个身体:
<?xml version="1.0"?>
<methodCall>
<methodName>version</methodName>
<params/>
</methodCall>
如果您想手动执行,那么https://en.wikipedia.org/wiki/XML-RPC有一些关于如何创建XML-RPC请求的信息。
然后端点是/jsonrpc
,而body很可能类似于那个{"service":"common","method": "version", "params": {}}
,但是josonapi os没有被很好的处理,我从未使用过它。
https://stackoverflow.com/questions/62762471
复制相似问题