У меня есть сервер SOAP, написанный с использованием spyne
. Вот код:
class myService(ServiceBase):
@rpc(Integer, String, _returns=String)
def my_method(ctx):
sys.stdout.write("Request for `myService`: {}\n".format(ctx))
return "0," + "".join(random.sample(string.hexdigits, 16))
application = Application(
[myService],
tns=NAMESPACE,
in_protocol=Soap11(validator="lxml"),
out_protocol=Soap11()
)
if __name__ == "__main__":
logging.basicConfig(level=logging.DEBUG)
logging.getLogger("spyne.util").setLevel(logging.DEBUG)
wsgi_app = WsgiApplication(application)
server = make_server("0.0.0.0", 5555, wsgi_app)
server.serve_forever()
Это симулятор, который имитирует реальный сервис. Я подключаю их к нужным клиентам, но получаю ошибку code 400, message Bad HTTP/0.9 request type
на каждый запрос. Поскольку у меня нет доступа к клиентам, которые звонят на мой фиктивный сервер, я хочу распечатать полученный запрос на своем сервере. Код выше не работает (sys.stdout.write
).
ИЗМЕНИТЬ 1:
Я изменил sys.stdout
на python logger
:
import logging
logger = logging.getLogger("spyne.util")
...
...
...
logger.info("Request for `myService`: {}\n".format(ctx))
Но ничего не печатается, и на этот раз я получаю следующую ошибку:
code 400, message Bad request syntax