Я создал очень простой SOAP веб-сервер wsgi в Python с использованием spyne, который имеет только службу returnint ():
from spyne.protocol.soap import Soap11
from spyne.server.wsgi import WsgiApplication
from wsgiref.simple_server import make_server
class TestService(ServiceBase):
@rpc( _returns=Integer)
def returnint(self):
return 1
application = Application([TestService], 'return.int.soap',
in_protocol=Soap11(validator='lxml'),
out_protocol=Soap11())
if __name__ == '__main__':
server = make_server('127.0.0.1', 8000, wsgi_application)
server.serve_forever()
Я тестирую службу с использованием suds, например так:
from suds.client import Client
client = Client("http://localhost:8000/?wsdl")
while True:
result = client.service.returnint()
print(result)
Кажется, это работает нормально (служба возвращает 1, когда она вызывается), однако проблема, с которой я сталкиваюсь, заключается в том, что клиент, похоже, получает ответ каждые 2 секунды. Кто-нибудь знает, в чем причина этой задержки и есть ли способ ее устранить? Если это невозможно, я был бы очень признателен за любые комментарии относительно подходящих альтернатив.