mirror of
https://github.com/github/codeql.git
synced 2025-12-18 09:43:15 +01:00
48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
from twisted.web.server import Site, Request
|
|
from twisted.web.resource import Resource
|
|
from twisted.internet import reactor, endpoints
|
|
|
|
|
|
root = Resource()
|
|
|
|
|
|
class Foo(Resource):
|
|
def render(self, request: Request): # $ requestHandler
|
|
print(f"{request.content=}")
|
|
print(f"{request.cookies=}")
|
|
print(f"{request.received_cookies=}")
|
|
return b"I am Foo" # $ HttpResponse
|
|
|
|
|
|
root.putChild(b"foo", Foo())
|
|
|
|
|
|
class Child(Resource):
|
|
def __init__(self, name):
|
|
self.name = name.decode("utf-8")
|
|
|
|
def render_GET(self, request): # $ requestHandler
|
|
return f"Hi, I'm child '{self.name}'".encode("utf-8") # $ HttpResponse
|
|
|
|
|
|
class Parent(Resource):
|
|
def getChild(self, path, request): # $ requestHandler
|
|
print(path, type(path))
|
|
return Child(path)
|
|
|
|
def render_GET(self, request): # $ requestHandler
|
|
return b"Hi, I'm parent" # $ HttpResponse
|
|
|
|
|
|
root.putChild(b"parent", Parent())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
factory = Site(root)
|
|
endpoint = endpoints.TCP4ServerEndpoint(reactor, 8880)
|
|
endpoint.listen(factory)
|
|
|
|
print("Will run on http://localhost:8880")
|
|
|
|
reactor.run()
|