[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