Register now and start sharing your code snippets.
-->
A simple Python HTTP client
Python posted 3 months ago by christian
A simple HTTP client I had lying around that I wrote a long time ago. It supports cookies, redirects and stuff:
1 #!/usr/bin/env python 2 # 3 # Http 4 # 5 # A simple HTTP client that supports persistent cookies 6 # 7 8 import cookielib 9 import httplib 10 #httplib.HTTPConnection.debuglevel = 1 11 import urllib2 12 13 class Http: 14 def __init__(self, redirect_callback = None): 15 self.redirect_callback = redirect_callback 16 self.cookie_jar = cookielib.CookieJar() 17 self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor (self.cookie_jar)) 18 19 urllib2.install_opener(self.opener) 20 21 def get(self, url, headers = None): 22 request = urllib2.Request(url, headers = headers) 23 return self.execute_request(request) 24 25 def post(self, url, headers = None, parameters = None): 26 data = None 27 if parameters != None: 28 data = urllib.urlencode(parameters) 29 30 request = urllib2.Request(url, data, headers) 31 return self.execute_request(request) 32 33 def execute_request(self, request): 34 response = self.opener.open(request) 35 # Check for redirect, maybe better way to do this 36 if response.geturl() != request.get_full_url(): 37 if self.redirect_callback == None: 38 raise "Redirected to '" + response.geturl() + "' but no redirect callback defined" 39 else: 40 self.redirect_callback(response) 41 42 return response 43