def getPageFactory(url, agent="BitTorrent client", bindAddress=None, contextFactory=None, proxy=None, timeout=120): """Download a web page as a string. Download a page. Return a deferred, which will callback with a page (as a string) or errback with a description of the error. See HTTPClientFactory to see what extra args can be passed. """ scheme, host, port, path = client._parse(url) if proxy: host, port = proxy.split(':') port = int(port) factory = HTTPProxyUnGzipClientFactory(url, agent=agent, proxy=proxy) if scheme == 'https': from twisted.internet import ssl if contextFactory is None: contextFactory = ssl.ClientContextFactory() reactor.connectSSL(host, port, factory, contextFactory, bindAddress=bindAddress, timeout=timeout) else: reactor.connectTCP(host, port, factory, bindAddress=bindAddress, timeout=timeout) return factory
def downloadPageFactory(url, file, progressCallback=None, agent="BitTorrent client", bindAddress=None, contextFactory=None): """Download a web page to a file. @param file: path to file on filesystem, or file-like object. """ scheme, host, port, path = client._parse(url) factory = ProgressHTTPDownloader(url, file, progressCallback=progressCallback, agent=agent, supportPartial=0) if scheme == 'https': from twisted.internet import ssl if contextFactory is None: contextFactory = ssl.ClientContextFactory() reactor.connectSSL(host, port, factory, contextFactory, bindAddress=bindAddress) else: reactor.connectTCP(host, port, factory, bindAddress=bindAddress) return factory
def connect(host): if self.secure: from twisted.internet import ssl reactor.connectSSL(host, self.port or 443, self.factory, ssl.ClientContextFactory(), timeout=60) else: reactor.connectTCP(host, self.port or 80, self.factory, timeout=60)
def callRemote(self, method, *args): factory = AuthQueryFactory(self.path, self.host, method, self.user, self.password, *args) #factory = xmlrpc.QueryFactory(self.path, self.host, method, # self.user, self.password, *args) if self.secure: from twisted.internet import ssl #print "Connecting using ssl to host", self.host, "port", (self.port or 443) reactor.connectSSL(self.host, self.port or 443, factory, AuthContextFactory(self.certificate_file_name, self.private_key_file_name)) #reactor.connectSSL(self.host, self.port or 443, factory, # ssl.DefaultOpenSSLContextFactory("", self.certificate_file_name)) else: reactor.connectTCP(self.host, self.port or 80, factory) return factory.deferred