Grazie della dritta... io il realm lo conosco anche, ma dove dovrei darglielo?!
In HTTPPasswordMgrWithDefaultRealm.add_password gliene posso dare uno, ma da quello che ho capito - serve solo a stabilire quali dati di autenticazione utilizzare a seconda del realm ricevuto nell'errore 407 (e None significa "per tutti i realm"), ed - è il realm ricevuto che dovrebbe essere utilizzato poi per l'autenticazione. In sintesi, da quel che ho capito è _normale_ che nel corso dell'autenticazione digest si riceva un 407. Non ho capito nulla? grazie Pietro Il giorno sab, 29/09/2012 alle 19.08 +0200, Simone Federici ha scritto: > dalla mia esperienza con i proxy... di solito basta un realm sbagliato > per avere una 407 > prova a sniffare la risposta per capire che realm usare > > > ciao > S > > > 2012/9/29 Pietro Battiston <m...@pietrobattiston.it> > Il giorno sab, 29/09/2012 alle 16.32 +0200, Marco Giusti ha > scritto: > > On Sat, Sep 29, 2012 at 12:21:36PM +0200, Pietro Battiston > wrote: > > > Il giorno sab, 29/09/2012 alle 02.19 +0200, Pietro > Battiston ha scritto: > > > > Sì, ho provato, non cambia niente. > > > > > > > > L'idea che mi sono fatto è che wget sia semplicemente > incapace di > > > > parsare un proxy del genere (e d'altronde non c'è altro > modo per > > > > darglielo). Non dispero invece del tutto in urllib2, > semplicemente non > > > > capisco cosa stia succedendo. > > > > senza sapere ne' leggere ne' scrivere, le seguenti opzioni > non ti sono > > di aiuto, magari solo per semplificare l'url del proxy? > > > > --proxy-user=UTENTE imposta il nome utente per il > proxy a UTENTE. > > --proxy-passwd=PASS imposta la password per il > proxy a PASS. > > > > > Uh, molto carini questi parametri. In effetti non riuscendo a > passare > come argomento il proxy non avevo neanche immaginato di > poterne passare > i dati di autenticazione. > > Il fatto che anche in questo modo il proxy mi dia un errore > 407 mi > lascia sempre più sconsolato. > > > > e magari una cosa del genere, sempre senza saper ne' leggere > ne' > > scrivere? > > > > #! /usr/bin/python > > > > import urllib2 > > > > proxy_url = r'http://proxybiblio2.si.unimib.it:8080/'} > > proxy = urllib2.ProxyHandler({'http': proxy_url}) > > auth = urllib2.ProxyDigestAuthHandler() > > auth.add_password(realm, proxy_url, 'username', > 'password') > > opener = urllib2.build_opener(proxy, auth, > urllib2.HTTPHandler) > > urllib2.install_opener(opener) > > conn = urllib2.urlopen('http://webofknowledge.com') > > return_str = conn.read() > > > > > > Questo è esattamente quello che provavo, e per l'appunto dopo > l'errore > 407 si arrende... > > In cambio ho scoperto qualcos'altro di interessante. A > differenza della > classe ProxyDigestAuthHandler, la ProxyBasicAuthHandler ha due > metodi > "http_error_auth_reqed" e "get_cnonce", che sembrano > interessanti (e > sono chiaramente totalmente privi di documentazione). > > Inoltre entrambe le classi hanno un metodo > "http_error_407(req, fp, > code, msg, hdrs)" la cui documentazione è proprio > "Retry the request with authentication information, if > available." > > Il mio problema è come usarli questi metodi. Ora ho capito¹ > come > recuperare gli header della pagina di errore e provo un po' a > giocarci > alla cieca... > > ciao > > Pietro > > ¹ > > http://stackoverflow.com/questions/6402051/getting-error-headers-with-urllib2 > > > > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > > > > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python