twisted的简单webservice与调用

来源:互联网 发布:bbc听力软件下载 编辑:程序博客网 时间:2024/05/17 03:09

 

from twisted.web import server,xmlrpc,resource

functions = ['service1','service2','service3','service4']

class myXmlrpc(xmlrpc.XMLRPC):
      global functions
    
      def xmlrpc_funlist(self):
          print 'funlist call'
          return functions
    
      def xmlrpc_service1(self,*args):
          print 'service1 call'
          print args
          return [x + '_new' for x in args]

if __name__ == '__main__':
      from twisted.internet import reactor
    
      root = resource.Resource()
      root.putChild("", myXmlrpc())
    
      site = server.Site(root)
      reactor.listenTCP(8088,site)
      reactor.run()

 

client:

from twisted.web import xmlrpc
from twisted.internet import reactor

def mycallback(ret):
      print ret
      print type(ret)
      print 'callback ok'

def service1callback(ret,*args):
      print args
      print ret
      print 'myservice1 callback ok'
    
if __name__ == '__main__':
    
      proxy = xmlrpc.Proxy("http://127.0.0.1:8088")
      proxy.callRemote('funlist').addCallback(mycallback)
    
      proxy.callRemote('service1','a','b','c').addCallback(service1callback).addCallback(lambda _:reactor.stop())
                               
      reactor.run()

如果使用soap模块,

替换XMLRPC为SOAPPublisher
替换xmlrpc.Proxy为soap.Proxy
替换xmlrpc_为soap_

原创粉丝点击