2016-10-28 1 views
3

Ich erhalte Ereignisdaten von the Mailgun API. Ich bin in der Lage diese auf der Kommandozeile auszuführen und Daten zurück:HTTP-Anfrage-Äquivalent von `curl --user` Parameter?

curl -s --user 'api:key-xxxx' https://api.mailgun.net/v3/mydomain.net/events 

Jetzt möchte ich dieses Skript mit Python und Anfragen. Ich weiß, dass es möglich ist to make a request using Basic-Auth to get the data via a URL. Mailgun sagt jedoch, dass API-Schlüssel wie ein Kennwort behandelt werden sollten. Daher möchte ich API-Schlüssel möglichst nicht direkt in den URLs verfügbar machen.

Gibt es eine Möglichkeit, den Äquivalent von curl --user in Anfragen zu tun, um den Parameter zu liefern, aber ohne es in der URL offen zu legen?

Oder wäre es besser zu versuchen, curl direkt in Python zu verwenden?

+0

Wo möchten Sie das Passwort setzen, dass es nicht ausgesetzt wird? Es wird immer noch im Skript sein. Was lässt Sie denken, dass es mehr ausgesetzt ist, indem Sie es in die URL einfügen? Die 'request'-Bibliothek extrahiert sie aus der URL und fügt sie in den HTTP-Authentifizierungsheader ein. – Barmar

Antwort

4

Fügen Sie einfach das auth=('user', 'passwd') Argument zur Get-Methode hinzu, es muss ein Tupel mit 2 Strings sein.

my_req = requests.get('https://api.mailgun.net/v3/mydomain.net/events', auth=('user', 'pass') 
Verwandte Themen