基本 HTTP 服务器未完全正常工作且未抛出错误

Basic HTTP Server not fully working and not throwing errors

我已经开始探索 python 中的 HTTP 服务器,我想做一些非常简单的事情。这个想法只是如果客户端连接到 "my ip"/admin 它会在网页上显示他的 header ,如果不是它只是使用默认的 do_GET() 函数。

我的代码:

#!/usr/bin/env python3

import http.server
import socketserver

class HttpHandler(http.server.SimpleHTTPRequestHandler):

    def do_GET(self):
        if self.path == "/admin":
            self.wfile.write("This page is for administrators only".encode())
            self.wfile.write(str(self.headers).encode())
        else:
            http.server.SimpleHTTPRequestHandler.do_GET(self)

http_server=socketserver.TCPServer(("",10002),HttpHandler)
http_server.serve_forever()

出于某种原因我看不到 headers(除非我打印 self.headers 以在终端中显示它们)它甚至没有抛出任何错误所以我我有点迷路了。

感谢帮助

好的,所以我想出的解决方案(对于任何有兴趣或可能有同样疑问的朋友)是这样的:

#!/usr/bin/env python3

import http.server
import socketserver

class HttpHandler(http.server.SimpleHTTPRequestHandler):

    def do_GET(self):
        if self.path == "/admin":
            self.send_response(200)
            self.send_header("Content-type", "text/html")
            self.end_headers()
            self.wfile.write(bytes("<html> <head><title> Testing </title> </head><body><p> This page is only for administrators</p>"+str(self.headers)+"</body>", "UTF-8"))
        else:
            http.server.SimpleHTTPRequestHandler.do_GET(self)

http_server=socketserver.TCPServer(("",10001), HttpHandler)
http_server.serve_forever()