title: Urllib2 authentication with API key
body: <p>I am trying to connect to <a href="http://labs.radian6.com/api/GettingStarted.htm" rel="nofollow noreferrer">radian6 api</a>, which requires the auth_appkey, auth_user and auth_pass as md5 encryption. </p>
  
  <p>When I am trying to connect using telnet I can get the response xml successfully </p>
  
  <pre><code>telnet sandboxapi.radian6.com 80
  Trying 142.166.170.31...
  Connected to sandboxapi.radian6.com.
  Escape character is '^]'.
  GET /socialcloud/v1/auth/authenticate HTTP/1.1
  host: sandboxapi.radian6.com
  auth_appkey: 123456789
  auth_user: xxx@xxx.com
  auth_pass: 'md5encryptedpassword'
  
  HTTP/1.1 200 OK
  Server: Apache-Coyote/1.1
  Date: Thu, 26 Aug 2010 14:17:52 GMT
  Content-Type: application/xml
  Content-Length: 471
  </code></pre>
  
  <p>But when I am trying the same in python with the following code, </p>
  
  <pre><code>import urllib
  import urllib2
  
  user = 'xxx@xxx.com'
  password = 'md5encryptedpasswrod'
  base_url = 'http://sandboxapi.radian6.com/'
  api_key = '123456789'
  
  pwman = urllib2.HTTPPasswordMgrWithDefaultRealm()
  pwman.add_password(None, base_url, user, password)
  auth_handler = urllib2.HTTPBasicAuthHandler(pwman)
  opener = urllib2.build_opener(auth_handler)
  urllib2.install_opener(opener)
  
  req = urllib2.Request('http://sandboxapi.radian6.com/socialcloud/v1/auth/authenticate')
  req.add_header('auth_appkey', api_key)
  xml = urllib2.urlopen(req).read()
  </code></pre>
  
  <p>it is throwing the following error trace,</p>
  
  <pre><code>Traceback (most recent call last):
  File "connectapi.py", line 17, in &lt;module&gt;
  xml = urllib2.urlopen(req).read()
   File"/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 126, in urlopen
  return _opener.open(url, data, timeout)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 397, in open
  response = meth(req, response)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 510, in http_response
  'http', request, response, code, msg, hdrs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 435, in error
  return self._call_chain(*args)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 369, in _call_chain
  result = func(*args)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 518, in http_error_default
  raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
  urllib2.HTTPError: HTTP Error 401: Unauthorized
  </code></pre>
  
  <p>I don't know what I am missing. Is it the API key or md5 encrypted password that is why I am being unauthorized?<br>
  Your wisdom will be much appreciated to save my day.</p>