我正在尝试运行一个python-simpleHTTP网络服务器,它将提供相同的内容,无论收到的请求如何。目前,当我尝试这样做时,我得到的文件没有找到404。
我试图覆盖def list_directory(self, path):
并使其通过,因为我认为如果请求不在服务器上,这就是失败的类。这是否正确覆盖,还是还有更多工作要做?
我将list_directory方法放在MyHandler中,这是简单的启动HTTP服务器代码。
Handler = MyHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
答案 0 :(得分:1)
我明白了。源代码非常有用http://www.opensource.apple.com/source/python/python-3/python/Lib/SimpleHTTPServer.py
您可以使用以下内容覆盖处理程序内的send_head(),而不是覆盖list_directory:
def send_head(self):
"""
This sends the response code and MIME headers.
"""
path = THE FILE YOU WANT TO SERVE NO MATTER WHAT
f = open(path)
self.send_response(200)
ctype = self.guess_type(path)
self.send_header("Content-type", ctype)
self.end_headers()
return f