views:

33

answers:

3

hi,

how and with which python library is it possible to make an httprequest (https) with a user:password or a token?

basically the equivalent to curl -u user:pwd https://www.mysite.com/

thank you

A: 

class urllib2.HTTPSHandler A class to handle opening of HTTPS URLs.

21.6.7. HTTPPasswordMgr Objects These methods are available on HTTPPasswordMgr and HTTPPasswordMgrWithDefaultRealm objects.

HTTPPasswordMgr.add_password(realm, uri, user, passwd) uri can be either a single URI, or a sequence of URIs. realm, user and passwd must be strings. This causes (user, passwd) to be used as authentication tokens when authentication for realm and a super-URI of any of the given URIs is given. HTTPPasswordMgr.find_user_password(realm, authuri) Get user/password for given realm and URI, if any. This method will return (None, None) if there is no matching user/password.

For HTTPPasswordMgrWithDefaultRealm objects, the realm None will be searched if the given realm has no matching user/password.

Chris
thank you... thats it
aschmid00
A: 

Check our urllib2. The examples at the bottom will probably be of interest.

http://docs.python.org/library/urllib2.html

brianz
A: 

If you need to make thread-safe requests, use pycurl (the python interface to curl):

import pycurl
from StringIO import StringIO

response_buffer = StringIO()
curl = pycurl.Curl()

curl.setopt(curl.URL, "https://www.yoursite.com/")

# Setup the base HTTP Authentication.
curl.setopt(curl.USERPWD, '%s:%s' % ('youruser', 'yourpassword'))

curl.setopt(curl.WRITEFUNCTION, response_buffer.write)

curl.perform()
curl.close()

response_value = response_buffer.getvalue()

Otherwise, use urllib2 (see other responses for more info) as it's builtin and the interface is much cleaner.

sdolan