Tenho uma chamada cURL que uso em PHP:
curl -i -H 'Aceitar: application / xml' -u login: key " https://app.streamsend.com/emails "
Preciso de uma maneira de fazer a mesma coisa em Python. Existe uma alternativa para cURL em Python. Eu sei do urllib, mas sou um novato em Python e não tenho ideia de como usá-lo.
requests
em python (disponível para instalação via easy_install ou pip em PyPi). O nome / URL é um pouco confuso - no começo eu quase pensei que este era um pedido lista para melhorurllib2
, em vezrequests
de um muito intuitiva e fácil de usar a biblioteca Pythonsudo easy_install requests
ousudo pip install requests
.Respostas:
Sua chamada cURL usando urllib2. Completamente não testado.
fonte
Você pode usar as solicitações HTTP descritas em Solicitações: guia do usuário HTTP para humanos .
fonte
Aqui está um exemplo simples usando urllib2 que faz uma autenticação básica na API do GitHub.
Além disso, se você embrulhar isso em um script e executá-lo de um terminal, você pode canalizar a string de resposta para 'mjson.tool' para ativar a impressão bonita.
Uma última coisa a ser observada: urllib2 só oferece suporte a solicitações GET e POST.
Se você precisa usar outros verbos HTTP como DELETE, PUT, etc, você provavelmente vai querer dar uma olhada em PYCURL
fonte
Se você estiver usando um comando apenas para chamar curl assim, poderá fazer a mesma coisa em Python com
subprocess
. Exemplo:Ou você pode tentar PycURL se quiser tê-lo como uma API mais estruturada como o que o PHP tem.
fonte
import subprocess
? O ambiente python repl é como um arquivo python, você deve importar os outros módulos.Este é o mais simples que consegui fazer.
fonte
urllib2
é muito complicado.Algum exemplo, como usar urllib para essas coisas, com alguma sintaxe de açúcar. Eu sei sobre solicitações e outras bibliotecas, mas urllib é lib padrão para python e não requer que nada seja instalado separadamente.
Compatível com Python 2/3.
A função não está completa e possivelmente não é ideal, mas mostra uma representação e um conceito básicos para usar. Coisas adicionais podem ser adicionadas ou alteradas de acordo com o gosto.
12/08 atualização
Aqui está um link do GitHub para a fonte atualizada ao vivo. Suportando atualmente:
autorização
Compatível com CRUD
detecção automática de charset
detecção automática de codificação (compressão)
fonte
Se estiver executando todos os itens acima na linha de comando que você está procurando, recomendo o HTTPie . É uma alternativa cURL fantástica e é super fácil e conveniente de usar (e personalizar).
Aqui está sua descrição (sucinta e precisa) do GitHub;
A documentação sobre autenticação deve fornecer dicas suficientes para resolver seu (s) problema (s). Obviamente, todas as respostas acima também são precisas e fornecem maneiras diferentes de realizar a mesma tarefa.
Para que você NÃO precise sair do Stack Overflow, aqui está o que ele oferece em poucas palavras.
fonte