Żą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.


@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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.