Solicitudes de Python: sin adaptadores de conexión

Respuestas:

384

Debe incluir el esquema de protocolo:

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

Sin la http://parte, requestsno tiene idea de cómo conectarse al servidor remoto.

Tenga en cuenta que el esquema de protocolo debe ser todo en minúsculas; si su URL comienza con, HTTP://por ejemplo, tampoco encontrará el http://adaptador de conexión.

Martijn Pieters
fuente
@MartijnPieters ¿Qué paquete recomienda para descargar un archivo usando ftp?
AstroFloyd
@AstroFloyd No tengo ninguna recomendación allí, lo siento.
Martijn Pieters
Pido disculpas, pensé que estaba respondiendo a su comentario sobre la respuesta de otra persona a una pregunta diferente. De todos modos, recibí el error anterior porque intenté descargar un archivo a través de FTP. Esta respuesta da una solución para ese problema, "incluso" para Python3.
AstroFloyd
@AstroFloyd: sí, requestses solo para HTTP, no para otros protocolos.
Martijn Pieters
28

Una razón más, tal vez su URL incluya algunos caracteres ocultos, como '\ n'.

Si define su URL como a continuación, esta excepción generará:

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

porque hay '\ n' ocultar en la cadena. La url de hecho se convierte en:

\nhttp://google.com\n
Kingname
fuente
9
O si su URL es accidentalmente una tupla debido a una coma finalurl = self.base_url % endpoint,
Christian Long
@ChristianLong, ¿hay alguna forma de convertir una cadena a la URL adecuada? ¿Me puedes decir qué haces en tu comentario?
Ravi Shankar Bharti