[Twisted-Python] Running a HTTP client connection through a SOCKS proxy
nnp
version5 at gmail.com
Wed Jul 23 10:46:57 EDT 2008
Hey,
I'm working on an app at the moment, part of which needs to grab a
page from a website and parse the results. It will have to work in
environments where connections have to be routed through a SOCKSv4
proxy but I can't find any way to specify a proxy using any of the
Twisted classes. Is this possible? I assumed it was seeing as how it
is a fairly common situation but the documentation/API haven't
provided any useful information.
Cheers,
nnp
Btw, my code currently looks like this :
from twisted.web.client import HTTPClientFactory
from twisted.internet import ssl
from twisted.internet import reactor
from twisted.web import client
class BugGetter:
def __init__(self, url):
'''
This class attempts to verify that a bug ID is a legitimate
'''
self.url = url
self.contextFactory = ssl.ClientContextFactory()
self.scheme, self.host, self.port, path = client._parse(url)
def getPage(self, bugId):
self.bugUrl = ''.join([self.url, bugId])
self.hcf = HTTPClientFactory(self.bugUrl)
self.hcf.deferred.addCallback(self.parsePage)
self.hcf.deferred.addErrback(self.errorCallback)
if scheme == 'https:':
reactor.connectSSL(self.host, self.port, self.hcf,
self.contextFactory)
else:
reactor.connectTCP(self.host, self.port, self.hcf)
reactor.run()
def parsePage(self):
print self.hcf.status
print self.hcf.message
reactor.stop()
def errorCallback(self, failure):
print failure.getErrorMessage()
reactor.stop()
bz = Bugzilla('https://bugs.example.org/show_bug.cgi?id=')
bz.getPage('9999')
--
http://www.smashthestack.org
http://www.unprotectedhex.com
More information about the Twisted-Python
mailing list