一个简单的http server,处理get和post请求,Python实现

x33g5p2x  于2022-06-10 转载在 Python  
字(0.9k)|赞(0)|评价(0)|浏览(444)

一个简单的http server,能处理来自客户的get请求,以及post请求,Python实现。因为只是测试http服务器,代码只是把每次请求的数据打印出来,并返回一个响应ok的字符串。

from http.server import HTTPServer, BaseHTTPRequestHandler
import json

data = {'result': 'HTTP SERVER OK'}
host = ('localhost', 19999)

class My_Server(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)

        # 发给请求客户端的响应数据
        self.send_header('Content-type', 'application/json')
        self.end_headers()
        self.wfile.write(json.dumps(data).encode())

    def do_POST(self):
        self.send_response(200)

        datas = self.rfile.read(int(self.headers['content-length']))
        print('headers', self.headers)
        print("-->> post:", self.path, self.client_address)
        print(datas)

        # 发给请求客户端的响应数据
        self.send_header('Content-type', 'application/json')
        self.end_headers()
        self.wfile.write(json.dumps(data).encode())

if __name__ == '__main__':
    server = HTTPServer(host, My_Server)
    print("server启动@ : %s:%s" % host)

    server.serve_forever()

相关文章