Аутентификация Python с помощью urllib2 - PullRequest
4 голосов
/ 18 июня 2009

Поэтому я пытаюсь загрузить файл с сайта vsearch.cisco.com с python

[питон]

#Connects to the Cisco Server and Downloads files at the URL specified

import urllib2

#Define Useful Variables

url = 'http://vsearch.cisco.com'
username = 'xxxxxxxx'
password = 'xxxxxxxx'
realm = 'CEC'

# Begin Making connection

# Create a Handler -- Also could be where the error lies

handler = urllib2.HTTPDigestAuthHandler()
handler.add_password(realm,url,username,password)

# Create an Opener

opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)

try:
    urllib2.urlopen(url)
    print f.read()

except urllib2.HTTPError, e:
    print e.code
    print e.header

[/ питон]

Моя ошибка - ValueError: AbstractDigestAuthHandler не знает о базовых

Я пытался использовать обработчики Basic HTML Authorization и даже HTTPS. Ничто не дает мне доступ. Эта ошибка отличается от всех других ошибок, однако. Другие ошибки - просто 401 ошибка HTML

Любые предложения о том, как это сделать?

Ответы [ 2 ]

8 голосов
/ 18 июня 2009

Может помочь «менеджер паролей»:

    mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
    mgr.add_password(None, url, user, password)        
    urllib2.build_opener(urllib2.HTTPBasicAuthHandler(mgr),
                         urllib2.HTTPDigestAuthHandler(mgr))
0 голосов
/ 18 июня 2009

Что касается того, что я пробовал в своих тестах (http://devel.almad.net/trac/django-http-digest/browser/djangohttpdigest/tests/test_simple_digest.py), ошибка, вероятно, в вашем URL-адресе - чтобы она работала, я включил http: // part, а не только host.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...