Python 3.x 基本HTTP服务器未完全工作且未引发错误
我已经开始在python中探索HTTP服务器,我想做一些非常简单的事情。这个想法是,如果客户端连接到“my ip”/admin,它会在网页上显示其标题,如果不是,它只使用默认的do_GET()函数 我的代码: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):
#!/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()