🐍

PythonのHTTPServer/SimpleHTTPRequestHandlerを使って簡易なhttp severを立てる

2022/02/25に公開
class ExampleHandler(SimpleHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-Type", "application/json")
        self.end_headers()
        self.wfile.write(json.dumps({"message": "ok"}).encode("utf-8"))

    def do_POST(self):
        self.send_response(200)
        self.send_header("Content-Type", "application/json")
        self.wfile.write(json.dumps({"message": "ok"}).encode("utf-8"))
        self.end_headers()

...


server = HTTPServer(("", 0), ExampleHandler)
server.serve_forever()

これで GET/POST のリクエストに {"message": "ok"}を返す簡易なhttp serverが起動する
サンプルだとポート指定して起動するサンプルが多いが、HTTPServer(("", 0), ExampleHandler) こんな感じでport番号は0を渡してあげると空いているポートで起動してくれる

hostとportを起動したいときは server_address メソッドで取得できる

host, port = server.server_address

Discussion