def get_connection(self, *args, **kwargs): conn = HTTPAdapter.get_connection(self, *args, **kwargs) # Override the urlopen method on this connection if not hasattr(conn.urlopen, "wrapped"): orig_urlopen = conn.urlopen def urlopen(*args, **kwargs): timeout = kwargs.pop("timeout", None) if isinstance(timeout, Timeout): timeout = Timeout.from_float(timeout.connect_timeout) return orig_urlopen(*args, timeout=timeout, **kwargs) conn.urlopen = urlopen conn.urlopen.wrapped = True return conn
def get_connection(self, *args, **kwargs): conn = HTTPAdapter.get_connection(self, *args, **kwargs) # Override the urlopen method on this connection if not hasattr(conn.urlopen, "wrapped"): orig_urlopen = conn.urlopen def urlopen(*args, **kwargs): timeout = kwargs.pop("timeout", None) if isinstance(timeout, Timeout): timeout = Timeout.from_float(timeout.connect_timeout) return orig_urlopen(*args, timeout=timeout, **kwargs) conn.urlopen = urlopen conn.urlopen.wrapped = True return conn
def get_connection(self, url, proxies=None): # parse URL parsed = urlparse(url) host = parsed.hostname port = parsed.port if port is None: if parsed.scheme == 'http': port = 80 else: port = 443 # check record if parsed.hostname in dnsMap: dnsRecord = dnsMap[parsed.hostname] else: family = allowed_gai_family() dnsRecord = socket.getaddrinfo(host, port, family, socket.SOCK_STREAM) dnsRecord = list( set([socket.getfqdn(record[4][0]) for record in dnsRecord])) dnsMap[parsed.hostname] = dnsRecord dnsRecord = copy.copy(dnsRecord) random.shuffle(dnsRecord) # loop over all hosts err = None for hostname in dnsRecord: addr = hostname if parsed.port is not None: addr += ':{0}'.format(parsed.port) tmp_url = parsed._replace(netloc=addr).geturl() try: con = HTTPAdapter.get_connection(self, tmp_url, proxies=proxies) # return if valid if con is not None: return con except Exception as e: err = e if err is not None: raise err return None
def get_connection(self, url, proxies=None): url = url.replace(self.redirect_source, self.redirect_target) return HTTPAdapter.get_connection(self, url, proxies=proxies)