php - Codeigniter XML-RPC 连接到 Odoo 域错误
问题描述
我正在开发一个 PHP API 接口,以从我们本地网络上的 Odoo 12 API 获取数据,用于我们的 Intranet。
该authenticate
方法工作正常,因此连接良好。
我在search
方法上有问题。无论我尝试添加什么作为最后一个参数,API 都会给我同样的错误:
AssertionError:要规范化的域必须具有“域”形式:域组件的列表或元组
这是我用于请求的 PHP 代码,使用 CodeIgniter 的 XML-RPC 库。
$this->xmlrpc->server($this->url.$this->ep_object);
$this->xmlrpc->method('execute_kw');
$request = array(
array($this->db, 'string'),
array($this->user_id , 'int'),
array($this->password, 'string'),
array('res.partner', 'string'),
array('search', 'string'),
array(
array(
array(
array('is_company', '=', true),
array('customer', '=', true)
)
)
, 'struct')
);
$this->xmlrpc->request($request);
if ( ! $this->xmlrpc->send_request())
{
echo $this->xmlrpc->display_error();
}
else
{
$val = $this->xmlrpc->display_response();
var_dump($val);
}
问题似乎出在$request
数组的最后一个参数上。我试过一个空列表,一个里面Array
有另一个Array
,等等......总是同样的错误。上面的代码试图复制与 API 文档中相同的代码,这在该领域还没有更详细:
https ://www.odoo.com/documentation/12.0/webservices/odoo.html#list-记录
据我所知,Codeigniter 库生成的编码可能有所不同,或者我遗漏了一些东西。
解决方案
推荐阅读
- javascript - 如何为 jquery 插件执行嵌套对象?
- google-bigquery - 如何获取在 BigQuery 命令行工具中运行的最后一个作业的作业 ID?
- selenium - 在网站中编写 selenium 脚本时,但它不会通过 selenium 脚本进入侧边栏选项窗口
- python - Efficient way to instantiate python library classes in my class?
- r - 如何在r中导出具有不同大小的列表列表
- c - 使用另一个变量指定数组大小时,“变量可能未初始化”
- android - 库应该依赖于 androidx 还是 android.support
- html - 代理到多个路径角度
- azure - 将应用推送到 Azure Kubernetes 服务时出现 Gitlab 错误:本地不存在带有标记的图像:
- ios - 在 WKWebView 目标 c 中打开 PDF 文件