[python] HTTP Autorizace + metoda post
Leos Pol
leos.pol na firma.seznam.cz
Čtvrtek Duben 17 08:45:15 CEST 2008
Ahoj,
chybka je v parametru uri, tam se ceka string nebo sekvence stringu.
Oprava je:
auth_handler.add_password(realm='PDQ Application', uri=req.get_full_url(), user='user', passwd='password')
Leo
Calis.martin na seznam.cz wrote:
> Dobrý den, nedávno jsem psal o svém problému ohldedně autorizace...
> Stále jsem na věc nepřišel. Napadlo mně udělat tohle:
>
> "import urllib2,urllib
>
> adresa = "http://www.cheatfella.com/authentifikace.php"
> parametry = {
> "print " : "Hello world"}
>
> params = urllib.urlencode(parametry) # Prekoduje parametry do tvaru vhodneho pro odeslani
> req = urllib2.Request(adresa, params) # Vytvori request, coz je smichanina adresy a parametru, pripadne i hlavicek
>
> #~ spojeni = urllib2.urlopen(req) # Otevre
> #~ spojeni.read()
> #~ spojeni.close()
>
>
>
>
> # Create an OpenerDirector with support for Basic HTTP Authentication...
> auth_handler = urllib2.HTTPBasicAuthHandler()
> auth_handler.add_password(realm='PDQ Application',
> uri=req,
> user='user',
> passwd='password')
> opener = urllib2.build_opener(auth_handler)
> # ...and install it globally so it can be used with urlopen.
> urllib2.install_opener(opener)
> urllib2.urlopen(req)"
>
> což nefunguje a vypíše nasledující hlášku: "
> Traceback (most recent call last):
> File "I:\Programy v Pythonu\MOJE\Ukoly\pripojeni.py", line 22, in <module>
> passwd='password')
> File "C:\Python25\lib\urllib2.py", line 706, in add_password
> [self.reduce_uri(u, default_port) for u in uri])
> TypeError: iteration over non-sequence"
>
>
> Nevíte kde je chyba?
>
> -----------------------------
> Moto: Teorie je, když všechno víme, ale nic nefunguje. Praxe je, když všechno funguje, ale nikdo neví proč. My jsme spojili teorii s praxí - nic nefunguje a nikdo neví proč.
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
Další informace o konferenci Python