使用soappy SOAPServer时,如何读取请求的标头?

发布于 2024-09-13 17:43:44 字数 423 浏览 4 评论 0原文

我有一个使用 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()

如果客户端从我的 Web 服务调用 hello() 方法,我如何读取标头,以便我可以开始记录一些信息(例如:IP 地址)用于调试?

I've got a Python webservice using SOAPpy. The webservice server is structured as shown below:

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()

If a client calls the hello() method from my webservice, how can I read the headers, so I can start logging some information (for example: ip address) for debugging?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自由范儿 2024-09-20 17:43:44

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

Do you want to do the logging in your hello method? Here's a minimal example that shows how to pass the SOAPContext information (which can give you some of this info) into the function/method call:

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()
探春 2024-09-20 17:43:44

您可以将 RequestHandler 添加到扩展 SOAPRequestHandler 的 SoapServer 对象并替换 HeaderHandler (查看 server.py 为例)

you can add a RequestHandler to the SoapServer object that extends the SOAPRequestHandler and replaces the HeaderHandler (have a look at the source of server.py for an example)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文