python - 使用soappy SOAPServer时,如何读取请求的 header ?

标签 python web-services soap soappy

我有一个使用 SOAPpy 的 Python Web 服务。 Webservice服务器的结构如下图所示:

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() 方法,我如何读取 header ,以便开始记录一些信息(例如:IP 地址)以进行调试?

最佳答案

你想在你的 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()

关于python - 使用soappy SOAPServer时,如何读取请求的 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442276/

相关文章:

java - 如何将 json 字符串作为 RESTFUL 请求发送给 postman

具有二进制数据的 WCF 服务

python - super().method() 和 self.method() 有什么区别

python - 为什么子图在 x 轴上产生空白区域?

python - 将 lambda 与 pandas 结合使用以现有列为条件计算新列

wcf - WCF + NHibernate + Web服务软件工厂2010-请求反馈

java - Spring Integration 如何与 Web 服务( Jersey )交互?

python - 带有计数的断言

java - 以 PDF 作为输入文件的 RESTful Web 服务

Soap UI - Windows 中存储的首选项/设置在哪里