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