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