【发布时间】:2019-12-21 15:25:23
【问题描述】:
我有一个使用spyne 编写的SOAP 服务器。代码如下:
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改成pythonlogger:
import logging
logger = logging.getLogger("spyne.util")
...
...
...
logger.info("Request for `myService`: {}\n".format(ctx))
但没有打印任何内容,这次我收到以下错误:
code 400, message Bad request syntax
【问题讨论】: