2010-07-28 13 views
5

jak iz jaką biblioteką Pythona można utworzyć httprequest (https) z użytkownikiem: hasłem lub tokenem?żądanie python http z tokenem

zasadzie równoważne curl -u user:pwd https://www.mysite.com/

dziękuję

Odpowiedz

0

klasy urllib2.HTTPSHandler klasę do obsługi otwarcie HTTPS.

21.6.7. HTTPPasswordMgr Objects Te metody są dostępne w obiektach HTTPPasswordMgr i HTTPPasswordMgrWithDefaultRealm.

Hasło HTTPPasswordMgr.add_ (realm, uri, user, passwd) uri może być pojedynczym identyfikatorem URI lub sekwencją identyfikatorów URI. realm, user i passwd muszą być ciągami. To powoduje, że (użytkownik, passwd) jest używany jako token uwierzytelniający podczas uwierzytelniania w dziedzinie i podany jest super-URI któregokolwiek z podanych URI. HTTPPasswordMgr.find_user_password (realm, authuri) Uzyskaj użytkownika/hasło dla danej dziedziny i URI, jeśli taki istnieje. Ta metoda zostanie zwrócona (None, None), jeśli nie ma pasującego użytkownika/hasła.

Dla obiektów HTTPPasswordMgrWithDefaultRealm, obszar Brak będzie przeszukiwany, jeśli podana dziedzina nie ma pasującego użytkownika/hasła.

+0

dziękuję ... ów to – aschmid00

1

Jeśli trzeba wykonać żądania thread-safe, należy pycurl (interfejs pyton zwijają):

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() 

przeciwnym razie użyj urllib2 (zobacz inne odpowiedzi dla więcej informacji), jak to wbudowany i interfejs jest znacznie czystszy.

4

użytku wnioski Python: HTTP dla ludzi

import requests 

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

można również użyć strawienia auth ...

+0

tak, to w jaki sposób należy go zawsze! niesamowite lib! – Rok

+0

Żądania nadziei zostaną dodane do pythona std lib w pewnym momencie – locojay

Powiązane problemy