Python-Anfragen - Keine Verbindungsadapter

208

Ich verwende die Bibliothek " Requests: HTTP for Humans" und habe diesen seltsamen Fehler erhalten. Ich weiß nicht, was gemein ist.

No connection adapters were found for '192.168.1.61:8080/api/call'

Hat jemand eine Idee?

Azd325
quelle

Antworten:

380

Sie müssen das Protokollschema einschließen:

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

Ohne das http://Teil requestshat keine Ahnung, wie man eine Verbindung zum Remote-Server herstellt.

Beachten Sie, dass das Protokollschema nur in Kleinbuchstaben geschrieben sein muss. Wenn Ihre URL HTTP://beispielsweise mit beginnt , wird der http://Verbindungsadapter ebenfalls nicht gefunden.

Martijn Pieters
quelle
@MartijnPieters Welches Paket empfehlen Sie, um eine Datei mit FTP herunterzuladen?
AstroFloyd
@AstroFloyd Ich habe dort keine Empfehlungen, sorry.
Martijn Pieters
Ich entschuldige mich - ich dachte, ich antworte auf Ihren Kommentar zur Antwort eines anderen auf eine andere Frage. Wie auch immer, ich habe den obigen Fehler erhalten, weil ich versucht habe, eine Datei über FTP herunterzuladen. Diese Antwort bietet eine Lösung für dieses Problem, "sogar" für Python3.
AstroFloyd
@AstroFloyd: Ja, requestsist rein für HTTP, keine anderen Protokolle.
Martijn Pieters
28

Ein weiterer Grund, vielleicht enthält Ihre URL einige versteckte Zeichen, wie z. B. '\ n'.

Wenn Sie Ihre URL wie folgt definieren, wird diese Ausnahme ausgelöst:

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

weil in der Zeichenfolge '\ n' versteckt sind. Die URL wird in der Tat:

\nhttp://google.com\n
Königsname
quelle
9
Oder wenn Ihre URL versehentlich ein Tupel wegen eines nachgestellten Kommas isturl = self.base_url % endpoint,
Christian Long
@ChristianLong gibt es eine Möglichkeit, einen String in die richtige URL zu konvertieren? Kannst du mir sagen, was machst du in deinem Kommentar?
Ravi Shankar Bharti