微信小程序实现跟odoo的交互 使用xmlrpc和jsonrpc 持续更新中。。。

odoo这个开源ERP,允许外界使用两种RPC(远程过程调用):xmlrpc和jsonrpc,实现增删改查。实际上Odoo 的 WEB 前端是完全通过接口和后端通讯的,几乎实现了前后端分离。xmlrpc是老版本odoo用的多,保留是为了保持兼容性。

===========================xmlrpc实现访问=============================

关于xmlrpc在odoo官网可以找到:

https://www.odoo.com/documentation/15.0/werbservices/odoo.html

关于python的xmlrpclib,网址是:

20.23. xmlrpclib — XML-RPC client access — Python 2.7.18 documentation

在windows下,cmd窗口命令用以下语句可获得xmlprc的版本号:

 

 要在微信小程序中实现以上的功能,代码如下:

    wx.request({

      method: 'POST',                               //对xmlrpc来说,GET或者POST都可以

      url: 'http://localhost:8069/xmlrpc/2/common',

                                                               //这里选择访问xmlrpc/2/common,不需要验证,方便测试

      data: "<?xml version='1.0'?>\n<methodCall>\n<methodName>version</methodName>\n<params>\n</params>\n</methodCall>\n",      //xmlrpc的数据格式

      header: {

        'content-type': 'text/xml'                                 //xmlrpc的内容类型要这么写

      },

      success (res) {

        console.log(res.data)                                   //成功获得值后的操作

      }

    })

========================jsonrpc实现访问comon/vsersion========================

而要用jsonrpc实现同样的访问,就需要做一点修改

    wx.request({

      method: 'POST',                                        //jsonrpc必须使用POST

      url: 'http://localhost:8069/jsonrpc',            //留意此处地址变化 ,不需要验证,方便测试

      data: {

        "jsonrpc": "2.0",                                      //必要格式,参考下面的网址https://www.odoo.com/documentation/15.0/developer/howtos/backend.html?highlight=jsonrpc

        "method": "call",                                         //必要格式,参考下面的网址

        "params": {"service": "common", "method": "version", "args": ''}, //args必须有且不能是null

        "id": null,                                                         //必要格式,参考下面的网址

      },

      header: {

        'content-type': 'application/json'                    // 留意此处变化

      },

      success (res) {

        console.log(res.data)

      }

    })

========================jsonrpc实现访问comon/login========================

    wx.request({

      method: 'POST',

      url: 'http://localhost:8069/jsonrpc',            //留意此处地址变化

      data: {

        "jsonrpc": "2.0",

        "method": "call",

        "params": {"service": "common", "method": "login", "args": [database, username, password]},

        "id": null,

      },

      header: {

        'content-type': 'application/json' // 默认值

      },

      success (res) {

        console.log(res.data)

      }

    })

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值