使用BaseHTTPServer.BaseHTTPRequestHandlerhandle()处理HTTP请求的示例
发布时间:2024-01-08 17:58:54
下面是使用BaseHTTPRequestHandler的示例代码:
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
# 定义请求处理类
class MyHandler(BaseHTTPRequestHandler):
# 处理GET请求
def do_GET(self):
# 返回响应头
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
# 返回响应内容
self.wfile.write('Hello, World!')
# 创建服务器实例
server = HTTPServer(('localhost', 8000), MyHandler)
# 启动服务器
server.serve_forever()
上述代码创建了一个基于HTTPServer的服务器,并使用自定义的处理类MyHandler来处理请求。在MyHandler中,我们重写了do_GET方法,用于处理GET请求。当收到GET请求时,我们发送200的响应状态码,并设置Content-type为text/html。然后,我们发送响应头和响应内容,这里是一个简单的"Hello, World!"。
可以通过运行上述代码,并在浏览器中访问http://localhost:8000来查看示例的效果。浏览器将收到服务器发送的"Hello, World!"作为响应。
除了do_GET,BaseHTTPRequestHandler还提供了其他方法来处理不同类型的HTTP请求,如do_POST、do_HEAD等。您可以根据实际需求进行重写。例如,如果您想要处理POST请求,可以添加以下方法到MyHandler类中:
def do_POST(self):
# 处理POST请求
pass
然后根据具体需求编写处理POST请求的逻辑。同样,您还可以重写其他方法,以满足您的需求。
这只是BaseHTTPRequestHandler的基本用法示例,您可以根据实际需要进行更复杂的处理。
