Solicitações de Python - sem adaptadores de conexão

Respostas:

383

Você precisa incluir o esquema de protocolo:

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

Sem a http://parte, requestsnão tem idéia de como se conectar ao servidor remoto.

Observe que o esquema do protocolo deve estar em letras minúsculas; se o seu URL começar com, HTTP://por exemplo, ele também não encontrará o http://adaptador de conexão.

Martijn Pieters
fonte
@MartijnPieters Qual pacote você recomenda baixar um arquivo usando o ftp?
AstroFloyd 22/10/19
@AstroFloyd Eu não tenho nenhuma recomendação lá, desculpe.
Martijn Pieters
Peço desculpas - pensei que estava respondendo ao seu comentário sobre a resposta de outra pessoa para uma pergunta diferente. Enfim, recebi o erro acima porque tentei baixar um arquivo via FTP. Esta resposta fornece uma solução para esse problema, "mesmo" para Python3.
AstroFloyd 22/10/19
@ Astrofloyd: sim, requestsé puramente para HTTP, não para outros protocolos.
Martijn Pieters
28

Mais um motivo, talvez seu URL inclua alguns caracteres ocultos, como '\ n'.

Se você definir seu URL como abaixo, esta exceção aumentará:

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

porque há '\ n' oculto na string. O URL de fato se torna:

\nhttp://google.com\n
Kingname
fonte
9
Ou se o seu url é acidentalmente uma tupla por causa de uma vírgula à direitaurl = self.base_url % endpoint,
Christian Long
@ChristianLong existe alguma maneira de converter uma string em url adequado? Como, você pode me dizer, o que você está fazendo no seu comentário?
Ravi Shankar Bharti