Skip to content

Instantly share code, notes, and snippets.

@netdesign
Created October 6, 2011 14:31
Show Gist options
  • Save netdesign/1267537 to your computer and use it in GitHub Desktop.
Save netdesign/1267537 to your computer and use it in GitHub Desktop.
Tornado simple Proxy
from tornado import httpserver, ioloop
from tornado.httpclient import AsyncHTTPClient, HTTPClient
class httpProxy():
def __init__(self, iolp):
self.myserv = httpserver.HTTPServer(self.handle_request)
self.myserv.listen(8080)
self.httpclient = AsyncHTTPClient()
self.userAgent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30"
self.ioloop = iolp.start()
def handle_request(self, req):
print "requested url "+req.uri
self.getPage(req)
self.req = req
def getPage(self, req):
self.httpclient.fetch(req.uri, callback=self.handler, headers={"Accept-Encoding":"gzip,deflate", "Referer":"http://www.google.com", "User-Agent":self.userAgent})
def handler(self, response):
self.resp = ("HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s" % (len(response.body), response.body))
self.req.write(self.resp)
self.req.finish() # THIS IS THE INDICTED LINE
iolp = ioloop.IOLoop.instance()
server = httpProxy(iolp)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment