Send a request header line to the server. For example: h.putheader('Accept', 'text/html')
(self, header, *values)
| 1316 | f"(found at least {match.group()!r})") |
| 1317 | |
| 1318 | def putheader(self, header, *values): |
| 1319 | """Send a request header line to the server. |
| 1320 | |
| 1321 | For example: h.putheader('Accept', 'text/html') |
| 1322 | """ |
| 1323 | if self.__state != _CS_REQ_STARTED: |
| 1324 | raise CannotSendHeader() |
| 1325 | |
| 1326 | if hasattr(header, 'encode'): |
| 1327 | header = header.encode('ascii') |
| 1328 | |
| 1329 | if not _is_legal_header_name(header): |
| 1330 | raise ValueError('Invalid header name %r' % (header,)) |
| 1331 | |
| 1332 | values = list(values) |
| 1333 | for i, one_value in enumerate(values): |
| 1334 | if hasattr(one_value, 'encode'): |
| 1335 | values[i] = one_value.encode('latin-1') |
| 1336 | elif isinstance(one_value, int): |
| 1337 | values[i] = str(one_value).encode('ascii') |
| 1338 | |
| 1339 | if _is_illegal_header_value(values[i]): |
| 1340 | raise ValueError('Invalid header value %r' % (values[i],)) |
| 1341 | |
| 1342 | value = b'\r\n\t'.join(values) |
| 1343 | header = header + b': ' + value |
| 1344 | self._output(header) |
| 1345 | |
| 1346 | def endheaders(self, message_body=None, *, encode_chunked=False): |
| 1347 | """Indicate that the last header line has been sent to the server. |