|
14 | 14 | from .wsgi import set_wsgi_attributes_on_context
|
15 | 15 | from .asgi import set_asgi_attributes_on_context
|
16 | 16 | from .extract_route_params import extract_route_params
|
| 17 | +from ..helpers.headers import Headers |
17 | 18 |
|
18 | 19 | UINPUT_SOURCES = ["body", "cookies", "query", "headers", "xml", "route_params"]
|
19 | 20 | current_context = contextvars.ContextVar("current_context", default=None)
|
@@ -48,11 +49,12 @@ def __init__(self, context_obj=None, body=None, req=None, source=None):
|
48 | 49 | self.xml = {}
|
49 | 50 | self.outgoing_req_redirects = []
|
50 | 51 | self.set_body(body)
|
| 52 | + self.headers: Headers = Headers() |
| 53 | + self.cookies = dict() |
| 54 | + self.query = dict() |
51 | 55 |
|
52 | 56 | # Parse WSGI/ASGI/... request :
|
53 |
| - self.cookies = self.method = self.remote_address = self.query = self.headers = ( |
54 |
| - self.url |
55 |
| - ) = None |
| 57 | + self.method = self.remote_address = self.url = None |
56 | 58 | if source in WSGI_SOURCES:
|
57 | 59 | set_wsgi_attributes_on_context(self, req)
|
58 | 60 | elif source in ASGI_SOURCES:
|
@@ -128,8 +130,4 @@ def get_route_metadata(self):
|
128 | 130 | }
|
129 | 131 |
|
130 | 132 | def get_user_agent(self):
|
131 |
| - if "USER_AGENT" not in self.headers: |
132 |
| - return None |
133 |
| - if isinstance(self.headers["USER_AGENT"], list): |
134 |
| - return self.headers["USER_AGENT"][-1] |
135 |
| - return self.headers["USER_AGENT"] |
| 133 | + return self.headers.get_header("USER_AGENT") |
0 commit comments