title: Digest authentication in Python?
body: <p>I'm trying to access pages from my company server with python. The first trail return 401: Unathorized(the server does need domain username/pwd for authentication). And the header content is as follow, and it seems to support 3 authentication protocols, Negotiate, NTLM and Digest, so in my understanding, I can choose any of them, right?</p>
  
  <pre><code>Content-Type: text/html
  Server: Microsoft-IIS/7.0
  WWW-Authenticate: Negotiate
  WWW-Authenticate: NTLM
  WWW-Authenticate: Digest qop="auth",algorithm=MD5-sess,nonce="+Upgraded+v184080dc2d18fe10d63520db505929b5b5b929ec98692ce010e80d6347b7a35d4027e59e277ac4fe1c257a95196071258a8e0797bf6129f76",charset=utf-8,realm="Digest"
  X-Powered-By: ASP.NET
  Date: Tue, 06 Aug 2013 09:24:44 GMT
  Connection: close
  Content-Length: 1293
  Set-Cookie: LB-INFO=1065493258.20480.0000; path=/
  </code></pre>
  
  <p>I'm using following python codes, but still got 401 unanthorized error, can anybody tell me how can i achieve it? Should I use NTLM? Thanks in advance!</p>
  
  <pre><code>p = urllib2.HTTPPasswordMgrWithDefaultRealm()
  p.add_password(None, self.url, username, password)
  handler = urllib2.HTTPDigestAuthHandler(p)
  opener = urllib2.build_opener(handler)
  urllib2.install_opener(opener)
  
  f = opener.open(self.url)
  </code></pre>