本文整理匯總了Python中six.moves.BaseHTTPServer.HTTPServer.handle_request方法的典型用法代碼示例。如果您正苦於以下問題:Python HTTPServer.handle_request方法的具體用法?Python HTTPServer.handle_request怎麽用?Python HTTPServer.handle_request使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類six.moves.BaseHTTPServer.HTTPServer
的用法示例。
在下文中一共展示了HTTPServer.handle_request方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: HTTPLogServer
# 需要導入模塊: from six.moves.BaseHTTPServer import HTTPServer [as 別名]
# 或者: from six.moves.BaseHTTPServer.HTTPServer import handle_request [as 別名]
class HTTPLogServer(threading.Thread):
class RequestHandler(BaseHTTPRequestHandler):
INDENT = 4
def do_GET(self):
if self.path == "/summary":
self.send_response(200)
self.end_headers()
with self.server.state_lock:
status = {
"complete": self.server.state["complete"],
"running" : self.server.state["running"],
"total" : self.server.state["total"],
"results" : self.server.state["summary"],
}
self.wfile.write(json.dumps(status, indent=self.INDENT))
else:
self.send_response(404)
self.end_headers()
def __init__(self, state, state_lock):
super(HTTPLogServer, self).__init__()
port = int(PIGLIT_CONFIG.safe_get("http", "port", fallback=8080))
self._httpd = HTTPServer(("", port), HTTPLogServer.RequestHandler)
self._httpd.state = state
self._httpd.state_lock = state_lock
def run(self):
while True:
with self._httpd.state_lock:
# stop handling requests after the request for the final results
if self._httpd.state["complete"] == self._httpd.state["total"]:
break;
self._httpd.handle_request()
示例2: SimpleWebServer
# 需要導入模塊: from six.moves.BaseHTTPServer import HTTPServer [as 別名]
# 或者: from six.moves.BaseHTTPServer.HTTPServer import handle_request [as 別名]
class SimpleWebServer(object):
"""A very basic web server."""
def __init__(self, host=DEFAULT_HOST, port=DEFAULT_PORT):
self.stop_serving = False
host = host
port = port
while True:
try:
self.server = HTTPServer(
(host, port), HtmlOnlyHandler)
self.host = host
self.port = port
break
except socket.error:
log.debug("port %d is in use, trying to next one" % port)
port += 1
self.thread = threading.Thread(target=self._run_web_server)
def _run_web_server(self):
"""Runs the server loop."""
log.debug("web server started")
while not self.stop_serving:
self.server.handle_request()
self.server.server_close()
def start(self):
"""Starts the server."""
self.thread.start()
def stop(self):
"""Stops the server."""
self.stop_serving = True
try:
# This is to force stop the server loop
URLopener().open("http://%s:%d" % (self.host, self.port))
except IOError:
pass
log.info("Shutting down the webserver")
self.thread.join()
def where_is(self, path):
return "http://%s:%d/%s" % (self.host, self.port, path)