[python] HTTP Autorizace + metoda post
Calis.martin na seznam.cz
Calis.martin na seznam.cz
Čtvrtek Duben 17 14:40:41 CEST 2008
díky, takhle už to funguje :)
ps: co to znamená to realm? co jsem tak pochopil tak pochpopil tak to znamená království...
ps2: ty pracuješ v seznamu? jak se tam využíva Python? mohl bys napsat reportáž :)
> ------------ Původní zpráva ------------
> Od: Leos Pol <leos.pol na firma.seznam.cz>
> Předmět: Re: [python] HTTP Autorizace + metoda post
> Datum: 17.4.2008 13:12:01
> ----------------------------------------
> Ahoj,
>
> tvuj server rika tohle: WWW-AuthenticateBasic realm="My Realm", takze
> but nastav napevno realm na "My Realm" nebo uplne nejlepe udelat prvne
> standardni dotaz, odchytit vyjimku HTTPError a z ni si dostat realm
> (vyjimka.headers['www-authenticate']) a pak provest HTTPBasicAuthHandler
> se spravnym realm. Mozna existuje jeste dalsi zpusob pomoci
> HTTPPasswordMgrWithDefaultRealm, ale s tim nemam zkusenosti.
>
> Leo
>
> Calis.martin na seznam.cz wrote:
> > To mě prozměnu vypíše toto:"Traceback (most recent call last):
> > File "I:\Programy v Pythonu\MOJE\Ukoly\pripojeni.py", line 23, in <module>
> > urllib2.urlopen(req)
> > File "C:\Python25\lib\urllib2.py", line 121, in urlopen
> > return _opener.open(url, data)
> > File "C:\Python25\lib\urllib2.py", line 380, in open
> > response = meth(req, response)
> > File "C:\Python25\lib\urllib2.py", line 491, in http_response
> > 'http', request, response, code, msg, hdrs)
> > File "C:\Python25\lib\urllib2.py", line 418, in error
> > return self._call_chain(*args)
> > File "C:\Python25\lib\urllib2.py", line 353, in _call_chain
> > result = func(*args)
> > File "C:\Python25\lib\urllib2.py", line 499, in http_error_default
> > raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
> > urllib2.HTTPError: HTTP Error 401: Unauthorized"
> >
> > jedna se asi o chybu s "urllib2.urlopen(req)", nechal jsem si vypsat hodnotu
> req:"<urllib2.Request instance at 0x00A3ADC8>" což ale asi nijak nepomuže...
> >
> >
> >> ------------ Původní zpráva ------------
> >> Od: Leos Pol <leos.pol na firma.seznam.cz>
> >> Předmět: Re: [python] HTTP Autorizace + metoda post
> >> Datum: 17.4.2008 08:46:00
> >> ----------------------------------------
> >> 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
> >>>
> >>>
> >>>
> >> _______________________________________________
> >> Python mailing list
> >> Python na py.cz
> >> http://www.py.cz/mailman/listinfo/python
> >>
> >>
> >>
> >>
> >
> > -----------------------------
> > 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
> >
> >
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
>
-----------------------------
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č.
Další informace o konferenci Python