Python调用基于Dubbo的Hessian协议接口示例

本文主要介绍使用Python调用Hession协议dubbo接口示例。关于DubboHession协议:Dubbo本身支持多种远程调用方式,例如DubboRPC(二进制序列化+tcp协议)、httpinvoker(二进制序列化+http协议)、hessian(二进制序列化+http协议)、WebServices(文本序列化+http协议)等。Dubbo将这些协议的实现进行了封装了,无论是服务端(开发服务)还是客户端(调用服务),都不需要关心协议的细节,只需要在配置中指定使用的协议即可,从而保证了服务提供方与服务消费方之间的透明。如果我们使用Dubbo的服务注册中心组件,这样服务提供方将服务发布到注册的中心,只是将服务的名称暴露给外部,而服务消费方只需要知道注册中心和服务提供方提供的服务名称,就能够透明地调用服务。Python调用Hession协议接口基本

流程如下:

1下载安装PythonHessian库,地址:https://github.com/theatlantic/python-hessian

2.定义Hession接口的服务、接口、方法名称

3.使用protocol.object_factory方法,调用该方法参数构造方法,构造调用参数4.使用HessianProxy方法,调用接口示例代码:1234567891011121314#-*-coding:utf-8-*-frompyhessian.clientimportHessianProxyfrompyhessianimportprotocolimportjsondefInvokeHessian(service,interface,method,req,retcode='000000'):try:url='http://192.168.0.1:10883/'+service+'.'+interfaceprint'URL:\t%s'%urlprint'Method:\t%s'%methodprint'Req:\t%s'%reqres=getattr(HessianProxy(url),method)(req)print'Res:\t%s'%json.dumps(res,ensure_ascii=False)

15161718192021222324252627exceptException,e:printeif__name__=='__main__':service='com.service.common.api.service'interface='TestHessianService'method='testHessian'req=protocol.object_factory('com.service.common.api.service.model.req.TestHessianRequest',param1='lovesoo',param2=10086)InvokeHessian(service,interface,method,req)shi

另附,官方示例Demo:https://github.com/theatlantic/python-hessian/blob/master/tests/test_parser.py

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180331B0G3XC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券