MCPcopy Create free account
hub / github.com/adafruit/Adafruit_CircuitPython_HTTPServer / Response

Class Response

adafruit_httpserver/response.py:53–147  ·  view source on GitHub ↗

Response to a given `Request`. Use in `Server.route` handler functions. Base class for all other response classes. Example:: @server.route(path, method) def route_func(request: Request): return Response(request, body='Some content', content_type="text/pla

Source from the content-addressed store, hash-verified

51
52
53class Response:
54 """
55 Response to a given `Request`. Use in `Server.route` handler functions.
56
57 Base class for all other response classes.
58
59 Example::
60
61 @server.route(path, method)
62 def route_func(request: Request):
63
64 return Response(request, body='Some content', content_type="text/plain")
65 """
66
67 def __init__(
68 self,
69 request: Request,
70 body: Union[str, bytes] = "",
71 *,
72 status: Union[Status, Tuple[int, str]] = OK_200,
73 headers: Union[Headers, Dict[str, str]] = None,
74 cookies: Dict[str, str] = None,
75 content_type: str = None,
76 ) -> None:
77 """
78 :param Request request: Request that this is a response to.
79 :param str body: Body of response. Defaults to empty string.
80 :param Status status: Status code and text. Defaults to 200 OK.
81 :param Headers headers: Headers to include in response. Defaults to empty dict.
82 :param Dict[str, str] cookies: Cookies to be sent with the response.
83 :param str content_type: Content type of response. Defaults to None.
84 """
85
86 self._request = request
87 self._body = body
88 self._status = status if isinstance(status, Status) else Status(*status)
89 self._headers = headers.copy() if isinstance(headers, Headers) else Headers(headers)
90 self._cookies = cookies.copy() if cookies else {}
91 self._content_type = content_type
92 self._size = 0
93
94 def _send_headers(
95 self,
96 content_length: Optional[int] = None,
97 content_type: str = None,
98 ) -> None:
99 headers = self._headers.copy()
100
101 response_message_header = f"HTTP/1.1 {self._status.code} {self._status.text}\r\n"
102
103 headers.setdefault("Content-Type", content_type or self._content_type or MIMETypes.DEFAULT)
104 headers.setdefault("Content-Length", content_length)
105 headers.setdefault("Connection", "close")
106
107 for cookie_name, cookie_value in self._cookies.items():
108 headers.add("Set-Cookie", f"{cookie_name}={cookie_value}")
109
110 for header, value in headers.items():

Callers 15

baseFunction · 0.90
fake_loginFunction · 0.90
redirect_otherFunction · 0.90
bedroomFunction · 0.90
officeFunction · 0.90
homeFunction · 0.90
baseFunction · 0.90
directory_listingFunction · 0.90
baseFunction · 0.90
clientFunction · 0.90
themed_from_cookieFunction · 0.90
baseFunction · 0.90

Calls

no outgoing calls

Tested by 5

baseFunction · 0.72
baseFunction · 0.72
baseFunction · 0.72
baseFunction · 0.72
baseFunction · 0.72