How Do I Add Basic Authentication To A Python REST Request?
I have the following simple Python code that makes a simple post request to a REST service - params= { 'param1' : param1, 'param2' : param2, 'param3' : param3 }
Solution 1:
If basic authentication = HTTP authentication, use this:
import urllib
import urllib2
username = 'foo'
password = 'bar'
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, MY_APP_PATH, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
params= { "param1" : param1,
"param2" : param2,
"param3" : param3 }
xmlResults = urllib2.urlopen(MY_APP_PATH, urllib.urlencode(params)).read()
results = MyResponseParser.parse(xmlResults)
If not, use mechanize
or cookielib
to make an additional request for logging in. But if the service you access has an XML API, this API surely includes auth too.
2016 edit: By all means, use the requests library! It provides all of the above in a single call.
Solution 2:
You may want a library to abstract out some of the details. I've used restkit to great effect before. It handles HTTP auth.
Post a Comment for "How Do I Add Basic Authentication To A Python REST Request?"