[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