httplib with NETRC authentication

pratibha natani en.pratibha at gmail.com
Tue May 13 19:33:15 EDT 2014


Hi,

I am trying to establish http connection to a gerrit host using netrc authentication. I have a netrc file created with following entries:
machine host1.com login name password pass

I did a debug and saw that my netrc file is being read correctly. Also in the connection object(after sending request) a header got created with appropriate credentials:
 'headers': {'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ='}

Still I get 401,Unauthorized in response. Any help would be greatly appreciated!

  headers = headers or {}
  bare_host = host.partition(':')[0]
  auth = NETRC.authenticators(bare_host)
  if auth:
    headers.setdefault('Authorization', 'Basic %s' % (
        base64.b64encode('%s:%s' % (auth[0], auth[2]))))
    print "inside auth 0 ", auth[0]
    print "inside auth 2 ", auth [2]
  if body:
    body = json.JSONEncoder().encode(body)
    headers.setdefault('Content-Type', 'application/json')
  conn = httplib.HTTPSConnection(host)
  conn.req_host = host
  conn.req_params = {
      'url': '/a/%s' % path,
      'method': reqtype,
      'headers': headers,
      'body': body,
  }
  conn.request(**conn.req_params)
  print "conn ", conn.__dict__


Thanks
Pratibha



More information about the Python-list mailing list