Żądania w języku Python - Brak adapterów połączeń

Odpowiedzi:

381

Musisz dołączyć schemat protokołu:

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

Bez tej http://części requestsnie ma pojęcia, jak połączyć się ze zdalnym serwerem.

Zauważ, że schemat protokołu musi być pisany małymi literami; jeśli HTTP://na przykład adres URL zaczyna się , nie znajdzie http://adaptera połączenia.

Martijn Pieters
źródło
@MartijnPieters Który pakiet polecasz pobrać plik przy użyciu ftp?
AstroFloyd
@AstroFloyd Nie mam żadnych rekomendacji, przepraszam.
Martijn Pieters
Przepraszam - myślałem, że odpowiadam na twój komentarz dotyczący odpowiedzi innej osoby na inne pytanie. W każdym razie otrzymałem powyższy błąd, ponieważ próbowałem pobrać plik przez FTP. Ta odpowiedź daje rozwiązanie tego problemu „nawet” dla Python3.
AstroFloyd
@AstroFloyd: tak, requestssłuży wyłącznie do HTTP, a nie innych protokołów.
Martijn Pieters
28

Jeszcze jeden powód, być może twój adres URL zawiera niektóre ukryte znaki, takie jak „\ n”.

Jeśli zdefiniujesz swój adres URL jak poniżej, ten wyjątek spowoduje:

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

ponieważ w ciągu znajduje się „\ n”. Adres URL w rzeczywistości staje się:

\nhttp://google.com\n
Kingname
źródło
9
Lub jeśli Twój adres URL jest przypadkowo krotką z powodu przecinka końcowegourl = self.base_url % endpoint,
Christian Long
@ChristianLong jest jakiś sposób przekonwertować ciąg na właściwy adres URL? Czy możesz mi powiedzieć, co robisz w swoim komentarzu?
Ravi Shankar Bharti