MCPcopy
hub / github.com/aio-libs/aiohttp / add_header

Method add_header

aiohttp/protocol.py:599–638  ·  view source on GitHub ↗

Analyze headers. Calculate content length, removes hop headers, etc.

(self, name, value)

Source from the content-addressed store, hash-verified

597 return self.headers_sent
598
599 def add_header(self, name, value):
600 """Analyze headers. Calculate content length,
601 removes hop headers, etc."""
602 assert not self.headers_sent, 'headers have been sent already'
603 assert isinstance(name, str), \
604 'Header name should be a string, got {!r}'.format(name)
605 assert set(name).issubset(ASCIISET), \
606 'Header name should contain ASCII chars, got {!r}'.format(name)
607 assert isinstance(value, str), \
608 'Header {!r} should have string value, got {!r}'.format(
609 name, value)
610
611 name = upstr(name)
612 value = value.strip()
613
614 if name == hdrs.CONTENT_LENGTH:
615 self.length = int(value)
616
617 if name == hdrs.TRANSFER_ENCODING:
618 self.has_chunked_hdr = value.lower().strip() == 'chunked'
619
620 if name == hdrs.CONNECTION:
621 val = value.lower()
622 # handle websocket
623 if 'upgrade' in val:
624 self.upgrade = True
625 # connection keep-alive
626 elif 'close' in val:
627 self.keepalive = False
628 elif 'keep-alive' in val:
629 self.keepalive = True
630
631 elif name == hdrs.UPGRADE:
632 if 'websocket' in value.lower():
633 self.websocket = True
634 self.headers[name] = value
635
636 elif name not in self.HOP_HEADERS:
637 # ignore hop-by-hop headers
638 self.headers.add(name, value)
639
640 def add_headers(self, *headers):
641 """Adds headers to a HTTP message."""

Callers 15

add_headersMethod · 0.95
_startMethod · 0.80
start_responseMethod · 0.80
sendMethod · 0.80
handle_errorMethod · 0.80
handle_requestMethod · 0.80
handle_requestMethod · 0.80
__init__Method · 0.80
cookiesMethod · 0.80
cookies_partialMethod · 0.80
test_add_headerFunction · 0.80

Calls

no outgoing calls