[python] MS Windows, ISA, urllib a proxy autentizace?
Martin Blazik
martin.blazik na premiumsms.cz
Úterý Červen 20 13:21:04 CEST 2006
Ja bych si tipnul, ze se autorizujes vuci spatnemu serveru a to vuci
www.py.cz zatimco by to melo byt oproti proxy. Co zkusit
proxy_handler = urllib2.ProxyHandler({'http':
'http://username:password@mujserver1:8080/'})
protoze jak koukam na zdrojaky urllib2, tak to parsujou a tu autorizaci
provedou primo v tyhle tride.
lachtan
Petr Prikryl napsal(a):
> Dík aspoň za potvrzení, že jsem na dobré stopě, ale...
>
> Martin Blazik
>
>>mozna by stalo za to, se na tu stranku prece jen podivat :)
>>Je tam primo priklad na to co potrebujes.
>>http://docs.python.org/lib/urllib2-examples.html
>>Jinak ja pouzivam nasledujici kod, ale to je bez autentifikace.
>>
>>import urllib2
>>
>>def download(proxy, url, postData = ''):
>> proxyHandler = urllib2.ProxyHandler({'http': proxy})
>> opener = urllib2.build_opener(proxyHandler)
>> if postData:
>> f = opener.open(url, postData)
>> else:
>> f = opener.open(url)
>> data = f.read()
>> return data
>
>
> ... tohle jsem právě zkoušel v následující podobě (skutečná
> jména a hesla zaměněna):
>
> =============================================================
> import urllib2
>
> proxy_handler = urllib2.ProxyHandler({'http': 'http://mujserver1:8080/'})
> proxy_auth_handler = urllib2.HTTPBasicAuthHandler()
> proxy_auth_handler.add_password('DOMENA', 'mujserver2', 'jmeno', 'heslo')
>
> opener = urllib2.build_opener(proxy_handler, proxy_auth_handler)
> f = opener.open('http://www.py.cz/')
> s = f.read()
> f.close()
>
> print s
> =============================================================
>
> Hlásí mi to tohle:
>
> C:\tmp>python tst4.py
> Traceback (most recent call last):
> File "tst4.py", line 8, in ?
> f = opener.open('http://www.py.cz/')
> File "C:\Python24\lib\urllib2.py", line 364, in open
> response = meth(req, response)
> File "C:\Python24\lib\urllib2.py", line 471, in http_response
> response = self.parent.error(
> File "C:\Python24\lib\urllib2.py", line 402, in error
> return self._call_chain(*args)
> File "C:\Python24\lib\urllib2.py", line 337, in _call_chain
> result = func(*args)
> File "C:\Python24\lib\urllib2.py", line 480, in http_error_default
> raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
> urllib2.HTTPError: HTTP Error 407: Proxy Authentication Required ( The ISA Serve
> r requires authorization to fulfill the request. Access to the Web Proxy service
> is denied. )
>
> Zjevně buď nestačí urllib2.HTTPBasicAuthHandler() nebo nějak špatně
> zadávám parametry. Překládám si 'realm' správně jako doménu
> (takovou tu windowsovskou)?
>
> proxy_auth_handler = urllib2.HTTPBasicAuthHandler()
> proxy_auth_handler.add_password('realm', 'host', 'username', 'password')
>
> pepr
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
Další informace o konferenci Python