Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[python] HTTP Autorizace + metoda post

0 views
Skip to first unread message

Calis....@seznam.cz

unread,
Apr 16, 2008, 3:12:53 PM4/16/08
to Konference PyCZ
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č.

Leos Pol

unread,
Apr 17, 2008, 2:45:15 AM4/17/08
to Konference PyCZ
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

> _______________________________________________
> Python mailing list
> Pyt...@py.cz
> http://www.py.cz/mailman/listinfo/python
>
>

Calis....@seznam.cz

unread,
Apr 17, 2008, 6:29:22 AM4/17/08
to Konference PyCZ
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...@firma.seznam.cz>
> Předmět: Re: [python] HTTP Autorizace + metoda post
> Datum: 17.4.2008 08:46:00
> ----------------------------------------

Leos Pol

unread,
Apr 17, 2008, 7:11:18 AM4/17/08
to Konference PyCZ
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....@seznam.cz

unread,
Apr 17, 2008, 8:40:41 AM4/17/08
to Konference PyCZ
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...@firma.seznam.cz>
> Předmět: Re: [python] HTTP Autorizace + metoda post

> Datum: 17.4.2008 13:12:01
> ----------------------------------------

Pavel Kosina

unread,
Apr 17, 2008, 11:32:17 AM4/17/08
to Konference PyCZ
Calis....@seznam.cz napsal(a):

> jak se tam využíva Python? mohl bys napsat reportáž :)
>


A ty bys mohl napsat reportáž s funkčním kodem s komentáři a případně
malou teorií na py.cz? ;-)

--
geon
Pavel Kosina

Calis....@seznam.cz

unread,
Apr 17, 2008, 12:42:14 PM4/17/08
to Konference PyCZ
ok, proč ne... Tenhle kód byl koneckonců vytvořený jenom proto aby něco odeslal...

> ------------ Původní zpráva ------------
> Od: Pavel Kosina <ge...@post.cz>


> Předmět: Re: [python] HTTP Autorizace + metoda post

> Datum: 17.4.2008 17:32:26
> ----------------------------------------

Calis....@seznam.cz

unread,
Apr 17, 2008, 1:44:35 PM4/17/08
to Konference PyCZ
Tak, je to hotovy, nahral jsem to na pastebin protoze kdybych to hodil sem tak by se zalamovaly radky.. Link: http://openpaste.org/cs/6173/

Pavel Kosina

unread,
Apr 17, 2008, 2:40:44 PM4/17/08
to Konference PyCZ
Prosím, naučte se trochu s wiki, není to tak složité ...
Nenechávejte mne to pořád dělat ....

Rychlý návod pro příště:

1. Vyplnte vlevo nahoře "user"
2. V "content" odkliněte nadpis, pod který se nejvíc Vaše téma hodí
3. Dole napište název nové stránky
4. Pište v reStructuredTextu
5. preview
6. oprava
7. preview
8. Save

Díky
P.


Calis....@seznam.cz napsal(a):

0 new messages