- 論壇徽章:
- 0
|
最近一直研究SOAP,并且實(shí)現(xiàn)了Python與Ruby的互通,這里和大家分享一下~
Python為服務(wù)器端
- from ZSI import dispatch
- def getWelcome(name):
- return "welcome " + name
- print "Starting server..."
- dispatch.AsServer(port=9000)
復(fù)制代碼
Ruby為客戶(hù)端
- require 'soap/rpc/driver'
- proxy = SOAP::RPC::Driver.new("http://localhost:9000",nil,'test')
- proxy.add_method('getWelcome','name')
- print proxy.getWelcome('interhui')
復(fù)制代碼
這個(gè)是已經(jīng)實(shí)現(xiàn)的,可是Ruby做服務(wù)器,Python做客戶(hù)端卻沒(méi)有完全實(shí)現(xiàn)。
Ruby為服務(wù)端
- require 'soap/rpc/standaloneServer'
- class StringServant
- def getWelcome(name)
- return "Welcome "+name
- end
- end
- class Server < SOAP::RPC::StandaloneServer
- def on_init
- servant = StringServant.new
- add_method(servant,'getWelcome','name')
- end
- end
- if __FILE__ == $0
- svr = Server.new('Server','','0.0.0.0',9000)
- trap('INT') { svr.shutdown }
- svr.start
- end
復(fù)制代碼
Python為客戶(hù)端
- from ZSI.client import Binding
- u = ''
- n= 'Server'
- b = Binding(url=u, ns=n, host='localhost', port=9000)
- result = b.getWelcome('inter')
- print result
復(fù)制代碼
也請(qǐng)各路高手給予指點(diǎn) |
|