Tengo una llamada cURL que uso en PHP:
curl -i -H 'Aceptar: aplicación / xml' -u inicio de sesión: clave " https://app.streamsend.com/emails "
Necesito una forma de hacer lo mismo en Python. ¿Existe una alternativa a cURL en Python? Sé de urllib pero soy un novato de Python y no tengo idea de cómo usarlo.
requests
en python (disponible para instalar a través de easy_install o pip en PyPi). El Nombre / URL es un poco confuso - en un primer momento pensó que esto era casi una solicitud deseos para una mejorurllib2
, en vezrequests
de una muy intuitiva y fácil de utilizar la biblioteca Pythonicsudo easy_install requests
osudo pip install requests
.Respuestas:
Su llamada cURL usando urllib2 en su lugar. Completamente no probado.
fuente
Puede utilizar las solicitudes HTTP que se describen en la guía del usuario Solicitudes: HTTP para humanos .
fuente
Aquí hay un ejemplo simple usando urllib2 que realiza una autenticación básica contra la API de GitHub.
Además, si envuelve esto en un script y lo ejecuta desde un terminal, puede canalizar la cadena de respuesta a 'mjson.tool' para habilitar una impresión bonita.
Una última cosa a tener en cuenta, urllib2 solo admite solicitudes GET & POST.
Si necesita usar otros verbos HTTP como DELETE, PUT, etc., probablemente querrá echar un vistazo a PYCURL
fuente
Si está utilizando un comando para llamar a curl de esa manera, puede hacer lo mismo en Python con
subprocess
. Ejemplo:O puede probar PycURL si desea tener una API más estructurada como la que tiene PHP.
fuente
import subprocess
? El entorno de respuesta de Python es como un archivo de Python, tienes que importar los otros módulos.Este es el más simple que he podido conseguir.
fuente
urllib2
es demasiado complicado.Algún ejemplo, cómo usar urllib para esas cosas, con algo de sintaxis de azúcar. Conozco las solicitudes y otras bibliotecas, pero urllib es una biblioteca estándar para python y no requiere que se instale nada por separado.
Compatible con Python 2/3.
La función no está completa y posiblemente no sea ideal, pero muestra una representación básica y un concepto para usar. Se pueden agregar o cambiar cosas adicionales según el gusto.
Actualización 12/08
Aquí hay un enlace de GitHub a la fuente actualizada en vivo. Actualmente apoyando:
autorización
Compatible con CRUD
detección automática de juego de caracteres
detección automática de codificación (compresión)
fuente
Si está ejecutando todo lo anterior desde la línea de comando que está buscando, le recomendaría HTTPie . Es una fantástica alternativa a cURL y es súper fácil y conveniente de usar (y personalizar).
Aquí está su descripción (sucinta y precisa) de GitHub;
La documentación sobre la autenticación debería proporcionarle suficientes sugerencias para resolver su (s) problema (s). Por supuesto, todas las respuestas anteriores también son precisas y brindan diferentes formas de realizar la misma tarea.
Solo para que NO tenga que alejarse de Stack Overflow, esto es lo que ofrece en pocas palabras.
fuente