Python Glossary English

все Python 3http.clientисключение

http.client.InvalidURL

исключения

Ошибка в адресе: нечисловой или пустой порт, управляющие символы или пробел в пути запроса. Потомок HTTPException.

Синтаксис

raise http.client.InvalidURL(message)

Самый частый повод — схема в имени хоста: HTTPConnection('http://example.com') видит порт '//example.com'. Второй — пробел или перевод строки в пути: http.client отвергает их, защищаясь от подделки заголовков, поэтому путь нужно кодировать через urllib.parse.quote(). Ошибка возникает до всякой сети — при создании соединения или в putrequest().

Примеры

import http.client
from urllib.parse import quote
try:
    http.client.HTTPConnection('example.com:abc')
except http.client.InvalidURL as e:
    print(e)  # → nonnumeric port: 'abc'
conn = http.client.HTTPConnection('example.com')
try:
    conn.putrequest('GET', '/my file')
except http.client.InvalidURL:
    print('use', quote('/my file'))  # → use /my%20file

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности