python rpc webservice_Python XML RPC服务器端和客户端实例

一、远程过程调用RPC

XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a transport. With it,a client can call methods with parameters on a remote server (the server is named by a URI) and get back structured data. This module supports writing XML-RPC client code; it handles all the details of translating between conformable Python objects and XML on the wire.

简单地,client可以调用server上提供的方法,然后得到执行的结果。类似与webservice。

推荐查看xmlprc的源文件:C:\Python31\Lib\xmlrpc

二、实例

1) Server

from xmlrpc.server import SimpleXMLRPCServer

from xmlrpc.server import SimpleXMLRPCRequestHandler

def div(x,y):

return x - y

class Math:

def _listMethods(self):

# this method must be present for system.listMethods

# to work

return ['add','pow']

def _methodHelp(self,method):

# this method must be present for system.methodHelp

# to work

if method == 'add':

return "add(2,3) => 5"

elif method == 'pow':

return "pow(x,y[,z]) => number"

else:

# By convention,return empty

# string if no help is available

return ""

def _dispatch(self,method,params):

if method == 'pow':

return pow(*params)

elif method == 'add':

return params[0] + params[1]

else:

raise 'bad method'

server = SimpleXMLRPCServer(("localhost",8000))

server.register_introspection_functions()

server.register_function(div,"div")

server.register_function(lambda x,y: x*y,'multiply')

server.register_instance(Math())

server.serve_forever()

2)client

import xmlrpc.client

s = xmlrpc.client.ServerProxy('http://localhost:8000')

print(s.system.listMethods())

print(s.pow(2,3))  # Returns 28

print(s.add(2,3))  # Returns 5

print(s.div(3,2))  # Returns 1

print(s.multiply(4,5)) # Returns 20

3)result

14842040841.png?20141022165220

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值