Как использовать SOAPSA SOAPServer, как мне прочитать заголовки запроса? - PullRequest
1 голос
/ 09 августа 2010

У меня есть веб-сервис Python, использующий SOAPpy.Сервер веб-сервиса структурирован, как показано ниже:

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

Если клиент вызывает метод hello() из моего веб-сервиса, как я могу прочитать заголовки, чтобы я мог начать регистрировать некоторую информацию (например, ipадрес) для отладки?

Ответы [ 2 ]

2 голосов
/ 09 августа 2010

Хотите ли вы войти в свой привет метод? Вот минимальный пример, который показывает, как передать информацию 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 голос
/ 09 августа 2010

вы можете добавить RequestHandler к объекту SoapServer, который расширяет SOAPRequestHandler и заменяет HeaderHandler (посмотрите на источник server.py для примера)

...