Richieste Python: nessuna scheda di connessione


Risposte:


384

Devi includere lo schema del protocollo:

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

Senza la http://parte, requestsnon ha idea di come connettersi al server remoto.

Si noti che lo schema del protocollo deve essere tutto minuscolo; se HTTP://ad esempio il tuo URL inizia con , non troverà nemmeno l' http://adattatore di connessione.


@MartijnPieters Quale pacchetto mi consiglia di scaricare un file usando ftp?
AstroFloyd,

@AstroFloyd Non ho consigli qui, mi dispiace.
Martijn Pieters

Mi scuso: pensavo di rispondere al tuo commento sulla risposta di qualcun altro a una domanda diversa. Comunque, ho ricevuto l'errore sopra perché ho provato a scaricare un file su FTP. Questa risposta offre una soluzione a questo problema, "pari" per Python3.
AstroFloyd,

@AstroFloyd: sì, requestsè puramente per HTTP, non altri protocolli.
Martijn Pieters

28

Un motivo in più, forse l'URL include alcuni caratteri hiden, come '\ n'.

Se definisci l'URL come di seguito, questa eccezione genererà:

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

perché ci sono '\ n' hide nella stringa. L'URL infatti diventa:

\nhttp://google.com\n

9
O se il tuo url è accidentalmente una tupla a causa di una virgola finaleurl = self.base_url % endpoint,
Christian Long,

@ChristianLong c'è un modo per convertire una stringa in url corretto? Puoi dirmi cosa stai facendo nel tuo commento?
Ravi Shankar Bharti,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.