无论SimpleHTTPServer中的get请求如何,都提供相同的内容

时间:2015-01-23 00:25:48

标签: network-programming simplehttpserver

我正在尝试运行一个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() 

1 个答案:

答案 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