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.