2010-08-09 2 views
1

У меня есть веб-сервис Python с использованием SOAPpy. Сервер вебсервис структурировано, как показано ниже:При использовании 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() 

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

ответ

2

Вы хотите, чтобы сделать регистрацию в методе Привет? Вот минимальный пример, который показывает, как передать информацию 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 к объекту SoapServer, который расширяет SOAPRequestHandler и заменяет HeaderHandler (взгляните на источник server.py для примера)

Смежные вопросы