【发布时间】:2013-05-24 08:35:50
【问题描述】:
参考:http://docs.python.org/2/library/basehttpserver.html
我有以下代码 sn-p,它使用Python BaseHTTPServer 运行基本的 HTTP 服务器。
from BaseHTTPServer import HTTPServer
from BaseHTTPServer import BaseHTTPRequestHandler
# http request handler
class HttpHandler(BaseHTTPRequestHandler):
def do_POST(self):
print "I have just received a HTTP request through POST"
try:
server = HTTPServer((<ip>, <port>), HttpHandler)
# wait forever for incoming http requests!
server.serve_forever()
except KeyboardInterrupt:
server.socket.close()
我正在寻找的是一种在使用 server.serve_forever()/server.socket.close() 方法启动/停止 http 服务器时获取回调的方法。
假设我们有以下函数:
def http_server_start_callback():
print "http server has just been started"
def http_server_stop_callback():
print "http server has just been stopped"
我希望http_server_start_callback 函数在我启动服务器后立即调用,即server.serve_forever(),我希望http_server_stop_callback 函数在我停止服务器后立即调用,即server.socket.close()
最好使用以下回调配置 http 服务器:
- 在启动服务器之前
- 启动服务器后
- 停止服务器之前
- 停止服务器后
有没有办法在Python BaseHTTPServer.HTTPServer 中设置这些回调?!
【问题讨论】:
标签: python http callback basehttpserver