Ich habe einen cURL-Aufruf, den ich in PHP verwende:
curl -i -H 'Akzeptieren: application / xml' -u Login: Schlüssel " https://app.streamsend.com/emails "
Ich brauche eine Möglichkeit, dasselbe in Python zu tun. Gibt es eine Alternative zu cURL in Python? Ich kenne urllib, aber ich bin ein Python-Neuling und habe keine Ahnung, wie ich es verwenden soll.
requests
in Python auszuführen (verfügbar zur Installation über easy_install oder pip in PyPi). Der Name / die URL ist etwas verwirrend - zuerst dachte ich fast, dies wäre eine Wunschliste für eine bessereurllib2
, stattdessenrequests
eine sehr intuitive, einfach zu bedienende Python-Bibliotheksudo easy_install requests
odersudo pip install requests
.Antworten:
Ihr cURL-Aufruf verwendet stattdessen urllib2. Völlig ungetestet.
quelle
Sie können HTTP-Anforderungen verwenden, die im Benutzerhandbuch " Anforderungen: HTTP für Menschen" beschrieben sind .
quelle
Hier ist ein einfaches Beispiel mit urllib2, das eine grundlegende Authentifizierung für die GitHub-API durchführt.
Wenn Sie dies in ein Skript einbinden und von einem Terminal aus ausführen, können Sie die Antwortzeichenfolge an 'mjson.tool' weiterleiten, um ein hübsches Drucken zu ermöglichen.
Als letztes ist zu beachten, dass urllib2 nur GET & POST-Anforderungen unterstützt.
Wenn Sie andere HTTP-Verben wie DELETE, PUT usw. verwenden müssen, sollten Sie sich PYCURL ansehen
quelle
Wenn Sie einen Befehl verwenden, um Curl einfach so aufzurufen, können Sie dasselbe in Python mit tun
subprocess
. Beispiel:Oder Sie könnten PycURL ausprobieren, wenn Sie es als strukturiertere API wie PHP haben möchten.
quelle
import subprocess
? Die Python-Repl-Umgebung ist wie eine Python-Datei. Sie müssen die anderen Module importieren.Dies ist das einfachste, was ich bekommen habe.
quelle
urllib2
ist zu kompliziert.Ein Beispiel, wie man urllib für diese Dinge verwendet, mit etwas Zuckersyntax. Ich kenne Anfragen und andere Bibliotheken, aber urllib ist die Standardbibliothek für Python und erfordert keine separate Installation.
Python 2/3 kompatibel.
Die Funktion ist nicht vollständig und möglicherweise nicht ideal, zeigt jedoch eine grundlegende Darstellung und ein zu verwendendes Konzept. Zusätzliche Dinge können je nach Geschmack hinzugefügt oder geändert werden.
12/08 Update
Hier ist ein GitHub-Link zur aktualisierten Live-Quelle. Derzeit unterstützt:
Genehmigung
CRUD-kompatibel
automatische Zeichensatzerkennung
automatische Codierungserkennung (Komprimierung)
quelle
Wenn alle oben genannten Funktionen über die von Ihnen gesuchte Befehlszeile ausgeführt werden, würde ich HTTPie empfehlen . Es ist eine fantastische cURL-Alternative und super einfach und bequem zu bedienen (und anzupassen).
Hier ist die (prägnante und präzise) Beschreibung von GitHub;
Die Dokumentation zur Authentifizierung sollte Ihnen genügend Hinweise geben, um Ihre Probleme zu lösen. Natürlich sind auch alle oben genannten Antworten korrekt und bieten verschiedene Möglichkeiten, um dieselbe Aufgabe zu erfüllen.
Nur damit Sie sich NICHT vom Stapelüberlauf entfernen müssen, ist hier das, was es auf den Punkt bringt.
quelle