Beispiel #1
0
def process_request(conn):
    r = conn.recv(1024)
    r = r.decode('utf-8')
    log("请求结束 ({})".format(r), flush=True)
    if len(r) < 2:
        conn.close()
    else:
        request = Request()
        # todo debug log
        # log("request {}".format(dir(request)), flush=True)
        request.method = r.split()[0]
        path = r.split()[1]
        request.add_headers(r.split("\r\n\r\n", 1)[0].split("\r\n")[1:])
        request.body = r.split("\r\n\r\n", 1)[1]
        response = response_for_path(path, request)

        conn.sendall(response)
        log("响应完成 response {}".format(response))
        conn.close()