Pythonic HTTPS access

NOTE: Twitter Has Disabled Basic Auth as of August 31 2010 so this example will not work

I could have also named this post “Python HTTP POST with Basic Authentication?” But i wanted to keep it simple , and really this post is just meant for documentation purposes.

import urllib
import httplib2
import sys

if len(sys.argv) != 2:
    print "Please enter message"
    raise SystemExit

msg = sys.argv[1]

username = "user"
password = "pass"

http = httplib2.Http()
http.add_credentials(username, password)
response = http.request(
"https://twitter.com/statuses/update.xml",
"POST",
urllib.urlencode({"status": msg})
)

if response:
    print "Update OK!"
else:
    print "Error updating..."
Advertisements

8 thoughts on “Pythonic HTTPS access

  1. If you are trying to make a https connection using httplib2.Http to a server which uses self-signed certificate, you might face “httplib2.SSLHandshakeError: [Errno 1] _ssl.c:480: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”.

    There are 2 solutions:
    1. httplib2.Http(disable_ssl_certificate_validation=True).request(‘https://www.godaddy.com/’)

    2. httplib2 uses its own certificate store. Usually, the location would be python/httplib2/cacerts.txt.

    Edit this file to add the certificate of your server and you should be good to go.
    [ http://viraj-workstuff.blogspot.com/2011/07/python-httplib2-certificate-verify.html ]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s