Pokud potřebujete poslat něco pomocí metody post na server, tak tenhle script by vam měl pomoci... Pokud hledate samotnou HTTP Autorizaci, pak Vám postači druhej odstavec kódu s nazvem:"###Autorizace":
import urllib2,urllib #Made by C-X in SciTE Editor ###Metoda post adresa = "http://adresa-vaseho-serveru-s-HTTP-autorizaci" parametry = { "print " : "Hello world"} # Prekoduje parametry do tvaru vhodneho pro odeslani params = urllib.urlencode(parametry) # Vytvori request, coz je smichanina adresy a parametru, pripadne i hlavicek req = urllib2.Request(adresa, params) ###Autorizace auth_handler = urllib2.HTTPBasicAuthHandler() #hlavicka #Do hlavicky prida heslo, uzivatelsky jmeno a adresu.(coz je keyword paramtr uri). #Pomoci metody get_full_url() dostaneme plnou adresu, ktera je nyni namichana s funkci post # a my do ni zamichame jeste autorizaci auth_handler.add_password(realm='My Realm', uri=req.get_full_url(), user='user', passwd='password') opener = urllib2.build_opener(auth_handler)#vytvori Opener #nainstaluje opener takze uz muzeme adesu otevrit normalne pomoci urlopen... urllib2.install_opener(opener) urllib2.urlopen(req)#otevrem urllib.close()#a zavrem
Princip
Takže jak to cele funguje?
- Za prvé metoda post: To je vlastně smichanina adresy a dat které chceme odeslat - data jsou ve formatu formular:data.
- Za druhé autorizace: Ta nám do URL ještě zakombinuje jméno, heslo a realm, poté když uz má tuto URL kompletně smichanou tak vytvoři opener a ten poté nainstaluje do urllib2...