我有一个使用SOAPpy的Python web服务。 Web服务服务器的结构如下所示:
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()
如果客户端从我的webservice调用hello()
方法,我该如何读取头文件,这样我就可以开始记录一些信息(例如:ip address)进行调试?
答案 0 :(得分: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 :(得分:1)
您可以向扩展RequestHandler
的SoapServer对象添加SOAPRequestHandler
并替换HeaderHandler
(例如,查看server.py的来源)< / p>