2010-07-28 4 views
5

Wie und mit welcher Python-Bibliothek ist es möglich, einen httprequest (https) mit einem Benutzer: Passwort oder ein Token?Python http Anfrage mit Token

im Grunde das Äquivalent zu curl -u user:pwd https://www.mysite.com/

danke

Antwort

0

Klasse urllib2.HTTPSHandler Eine Klasse Öffnung von HTTPS-URLs zu handhaben.

21.6.7. HTTPPasswordMgr-Objekte Diese Methoden sind für HTTPPasswordMgr- und HTTPPasswordMgrWithDefaultRealm-Objekte verfügbar.

HTTPPasswordMgr.add_password (Bereich, uri, Benutzer, passwd) uri kann entweder ein einzelner URI oder eine Sequenz von URIs sein. realm, user und passwd müssen Strings sein. Dies führt dazu, dass (Benutzer, passwd) als Authentifizierungstoken verwendet wird, wenn die Authentifizierung für einen Bereich und eine Super-URI eines der angegebenen URIs angegeben wird. HTTPPasswordMgr.find_user_password (Realm, Authuri) Benutzer/Passwort für gegebenen Realm und URI, falls vorhanden. Diese Methode gibt (None, None) zurück, wenn kein passender Benutzer/Passwort vorhanden ist.

Für HTTPPasswordMgrWithDefaultRealm-Objekte wird der Bereich None durchsucht, wenn der angegebene Bereich keinen übereinstimmenden Benutzer/Passwort hat.

+0

danke ... das ist es – aschmid00

1

Wenn Sie Thread-sicher-Anforderungen müssen machen, verwenden pycurl (die Python-Schnittstelle kräuseln):

import pycurl 
from StringIO import StringIO 

response_buffer = StringIO() 
curl = pycurl.Curl() 

curl.setopt(curl.URL, "https://www.yoursite.com/") 

# Setup the base HTTP Authentication. 
curl.setopt(curl.USERPWD, '%s:%s' % ('youruser', 'yourpassword')) 

curl.setopt(curl.WRITEFUNCTION, response_buffer.write) 

curl.perform() 
curl.close() 

response_value = response_buffer.getvalue() 

Andernfalls verwenden urllib2 (siehe andere Antworten für weitere Informationen), wie es ist eingebaut und die Schnittstelle ist viel sauberer.

4

Anfragen Verwendung Python: Http für Menschen

import requests 

requests.get("https://www.mysite.com/", auth=('username','pwd')) 

Sie auch Auth verdauen können ...

+0

ja, das ist, wie sollte es immer gewesen sein! tolle lib! – Rok

+0

Hoffnungsanfragen werden zu python std lib irgendwann hinzugefügt werden – locojay