2010-08-09 91 views
1

我有一个使用SOAPpy的Python webservice。 WebService的服务器结构如下图所示:当使用soappy SOAPServer时,如何读取请求的头文件?

class myClass: 
    def hello(): 
    return 'world' 

if __name__ == "__main__": 
    server = SOAPServer(('localhost', 8888)) 
    myObject = myClass() 
    namespace = 'whatever::namespace' 
    server.registerObject(myObject, namespace) 
    server.serve_forever() 

如果一个客户端调用从我的web服务的hello()方法,我怎么能读头,这样我就可以开始记录一些信息(例如:IP地址)进行调试?

回答

2

你想要做的记录在您的hello方法?下面是一个简单的例子,展示了如何将SOAPContext信息(可以给你一些这种信息)传递给函数/方法调用:

from SOAPpy import * 

def hello(_SOAPContext = None): 
    return "Your IP address is %s" % _SOAPContext.connection.getpeername()[0] 

if __name__ == "__main__": 
    server = SOAPServer(('10.3.40.104', 8080)) 
    server.registerFunction(MethodSig(hello, keywords=0, context=1)) 
    server.serve_forever() 
1

您可以将RequestHandler添加至延伸SOAPRequestHandler并替换HeaderHandler(看看的server.py源为例)的SoapServer的对象

相关问题