Python 3.x 基本HTTP服务器未完全工作且未引发错误

Python 3.x 基本HTTP服务器未完全工作且未引发错误,python-3.x,http-headers,httpserver,Python 3.x,Http Headers,Httpserver,我已经开始在python中探索HTTP服务器,我想做一些非常简单的事情。这个想法是,如果客户端连接到“my ip”/admin,它会在网页上显示其标题,如果不是,它只使用默认的do_GET()函数 我的代码: #!/usr/bin/env python3 import http.server import socketserver class HttpHandler(http.server.SimpleHTTPRequestHandler): def do_GET(self):

我已经开始在python中探索HTTP服务器,我想做一些非常简单的事情。这个想法是,如果客户端连接到“my ip”/admin,它会在网页上显示其标题,如果不是,它只使用默认的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()
由于某些原因,我看不到标题(除非我打印self.headers以在终端中显示它们),它甚至没有抛出任何错误,所以我有点迷路了


感谢您的帮助

好的,我提出的解决方案是(对于任何感兴趣的人或可能有同样疑问的朋友)如下:

#/usr/bin/env蟒蛇3
导入http.server
导入socketserver
类HttpHandler(http.server.SimpleHTTPRequestHandler):
def do_获得(自我):
如果self.path==“/admin”:
自我发送_响应(200)
self.send_标题(“内容类型”、“文本/html”)
self.end_头()
self.wfile.write(字节(“测试此页面仅适用于管理员”

“+str(self.headers)+”、“UTF-8”)) 其他: http.server.SimpleHTTPRequestHandler.do\u GET(self) http_server=socketserver.TCPServer((“”,10001),HttpHandler) http_server.serve_forever()
#!/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()