我正在使用SimpleHTTPServer制作简单的文件共享实用程序。我希望能够捕捉到当一个http传输完成,即当客户端文件下载完成。我想在这一点上执行一些动作。这可能吗?
您可以在SimpleHTTPServer模块中重写请求处理程序。我在
下面放了一个代码片段from __future__ import print_function
import os
import SimpleHTTPServer
import SocketServer
class MySimpleHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
"""Serve a GET request."""
f = self.send_head()
if f:
try:
self.copyfile(f, self.wfile)
finally:
if(os.path.isfile(self.translate_path(self.path))):
print("Log this download:", self.translate_path(self.path))
f.close()
PORT = 8000
Handler = MySimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print("serving at port", PORT)
httpd.serve_forever()