gpt4 book ai didi

python - 如何使用 wsgiref.simple_server 覆盖服务器版本字符串?

转载 作者:行者123 更新时间:2023-11-30 23:30:38 26 4
gpt4 key购买 nike

在 OSX (darwin) 上使用 Python 2.7.2,我想隐藏或自定义 wsgiref.simple_server.make_server() 发送的“服务器”响应 header 。

我尝试了很多方法但没有成功,并且非常确定此示例代码应该可以工作:

from wsgiref import simple_server

class MyWSGIRequestHandler(simple_server.WSGIRequestHandler):

server_version = "X/1"
sys_version = "Y/2"

httpd = simple_server.make_server('', 8082, simple_server.demo_app, handler_class=MyWSGIRequestHandler)

print "version_string: %s %s" % (httpd.RequestHandlerClass.server_version, httpd.RequestHandlerClass.sys_version)
# it prints "X/1 Y/2"
httpd.serve_forever()

但总是一样,没有办法去掉服务器发送的“Server: WSGIServer/0.1 Python/2.7.2”。我还尝试重写类中的 version_string 方法,例如使用类似的方法:

class MyWSGIRequestHandler(simple_server.WSGIRequestHandler):
def version_string(self):
return "42"

它没有改变任何东西,我真的不明白这里发生了什么。

有人可以帮我吗?

最佳答案

我终于找到了解决方案,不需要重写 WSGIRequestHandler。

from wsgiref.simple_server import ServerHandler
ServerHandler.server_software = "Fake Server Name Here"

然后你可以调用make_server()。

关于python - 如何使用 wsgiref.simple_server 覆盖服务器版本字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com