J'ai un appel cURL que j'utilise en PHP:
curl -i -H 'Accepter: application / xml' -u login: clé " https://app.streamsend.com/emails "
J'ai besoin d'un moyen de faire la même chose en Python. Existe-t-il une alternative à cURL en Python. Je connais urllib mais je suis un noob Python et je n'ai aucune idée de comment l'utiliser.
requests
en python (disponible à installer via easy_install ou pip dans PyPi). Le nom / URL est un peu déroutant - au début je presque pensé que c'était une demande pour une meilleure listeurllib2
, au lieu d'requests
un simple très intuitif à utiliser la bibliothèque pythoniquesudo easy_install requests
ousudo pip install requests
.Réponses:
Votre appel cURL en utilisant urllib2 à la place. Complètement non testé.
la source
Vous pouvez utiliser les requêtes HTTP décrites dans le guide de l'utilisateur Requests: HTTP for Humans .
la source
Voici un exemple simple utilisant urllib2 qui effectue une authentification de base contre l'API de GitHub.
De plus, si vous encapsulez ceci dans un script et que vous l'exécutez à partir d'un terminal, vous pouvez diriger la chaîne de réponse vers «mjson.tool» pour activer la jolie impression.
Une dernière chose à noter, urllib2 ne prend en charge que les requêtes GET & POST.
Si vous avez besoin d'utiliser d'autres verbes HTTP comme DELETE, PUT, etc., vous voudrez probablement jeter un coup d'œil à PYCURL
la source
Si vous utilisez une commande pour appeler curl comme ça, vous pouvez faire la même chose en Python avec
subprocess
. Exemple:Ou vous pouvez essayer PycURL si vous voulez l'avoir sous la forme d'une API plus structurée comme celle de PHP.
la source
import subprocess
? L'environnement repl python est comme un fichier python, vous devez importer les autres modules.C'est le plus simple que j'ai pu obtenir.
la source
urllib2
est trop compliqué.Un exemple, comment utiliser urllib pour cela, avec une syntaxe de sucre. Je connais les requêtes et autres bibliothèques, mais urllib est une bibliothèque standard pour python et ne nécessite aucune installation séparée.
Compatible Python 2/3.
La fonction n'est pas complète et n'est peut-être pas idéale, mais montre une représentation et un concept de base à utiliser. Des choses supplémentaires pourraient être ajoutées ou modifiées par goût.
Mise à jour du 12/08
Voici un lien GitHub vers la source mise à jour en direct. Soutient actuellement:
autorisation
Compatible CRUD
détection automatique du jeu de caractères
détection automatique du codage (compression)
la source
S'il exécute tout ce qui précède à partir de la ligne de commande que vous recherchez, je recommanderais HTTPie . C'est une alternative fantastique à cURL et est super facile et pratique à utiliser (et à personnaliser).
Voici sa description (succincte et précise) de GitHub;
La documentation autour authentification devrait vous donner suffisamment de pointeurs pour résoudre vos problèmes. Bien entendu, toutes les réponses ci-dessus sont également exactes et fournissent différentes manières d'accomplir la même tâche.
Juste pour que vous n'ayez PAS à vous éloigner de Stack Overflow, voici ce qu'il offre en un mot.
la source