Python Requests - Нет адаптеров подключения

Ответы:

385

Вам необходимо включить схему протокола:

'http://192.168.1.61:8080/api/call'

Без этой http://части requestsпонятия не имеет, как подключиться к удаленному серверу.

Обратите внимание, что схема протокола должна быть все в нижнем регистре; например, если ваш URL начинается с HTTP://, он не найдет http://адаптер подключения.

Мартейн Питерс
источник
@MartijnPieters Какой пакет вы рекомендуете загрузить файл с использованием ftp?
AstroFloyd
@AstroFloyd У меня нет никаких рекомендаций, извините.
Мартин Питерс
Я прошу прощения - я думал, что отвечаю на ваш комментарий на чужой ответ на другой вопрос. Во всяком случае, я получил вышеупомянутую ошибку, потому что я пытался загрузить файл через FTP. Этот ответ дает решение этой проблемы, «даже» для Python3.
AstroFloyd
@AstroFloyd: да, requestsчисто для HTTP, а не для любых других протоколов.
Мартин Питерс
28

Еще одна причина, может быть, ваш URL содержит некоторые скрытые символы, такие как \ n.

Если вы определите свой URL, как показано ниже, это исключение вызовет:

url = '''
http://google.com
'''

потому что в строке скрывается '\ n'. URL фактически становится:

\nhttp://google.com\n
Kingname
источник
9
Или, если ваш URL-адрес случайно является кортежем из-за запятой в концеurl = self.base_url % endpoint,
Кристиан Лонг,
@ChristianLong есть ли способ преобразовать строку в правильный URL? Мол, можете ли вы сказать мне, что вы делаете в своем комментарии?
Рави Шанкар Бхарти