欢迎访问宙启技术站
智能推送

Python中使用http.server.BaseHTTPRequestHandler构建自定义HTTP服务器

发布时间:2024-01-04 18:01:44

使用http.server.BaseHTTPRequestHandler可以很容易地构建一个自定义的HTTP服务器。下面是一个简单的示例来说明如何使用它。

首先,创建一个名为MyHTTPRequestHandler的自定义类,并从http.server.BaseHTTPRequestHandler继承。在子类中,可以重写一些方法来处理HTTP请求。

from http.server import BaseHTTPRequestHandler

class MyHTTPRequestHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        if self.path == '/':
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            self.wfile.write(b'Hello, World!')
        else:
            self.send_response(404)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            self.wfile.write(b'404 Not Found')

在上面的示例中,我们重写了do_GET方法来处理GET请求。如果请求的路径是根路径/,服务器将返回200状态码和Hello, World!的响应消息。如果请求的路径不是根路径,则返回404状态码和404 Not Found的响应消息。

接下来,可以使用Python的标准库http.server.HTTPServer来启动该自定义的HTTP服务器。

from http.server import HTTPServer

# 指定服务器地址和端口号
server_address = ('', 8000)
# 创建HTTP服务器
httpd = HTTPServer(server_address, MyHTTPRequestHandler)
# 启动服务器
httpd.serve_forever()

在上面的示例中,服务器将在本地的8000端口上运行。创建HTTP服务器时将指定服务器地址和端口号,以及先前创建的自定义请求处理程序。

现在,可以在浏览器中访问http://localhost:8000/来测试自定义的HTTP服务器。你将看到Hello, World!的响应消息。

这只是一个简单的示例来展示如何使用http.server.BaseHTTPRequestHandler构建自定义的HTTP服务器。你可以进一步扩展这个示例,并根据自己的需求来处理其他HTTP方法(如POST、PUT等),并为其他路径提供自定义的响应。