def __init__( self, client, url, method, inp_params=None, headers=None, data=None, files=None, history=None, charset=None, encode_multipart=True, multipart_boundary=None, source_address=None, allow_redirects=False, max_redirects=10, decompress=True, version=None, wait_continue=False, websocket_handler=None, cookies=None, urlparams=None, **ignored ): self.client = client self._data = None self.files = files self.urlparams = urlparams self.inp_params = inp_params or {} self.unredirected_headers = Headers(kind="client") self.method = method.upper() self.full_url = url if urlparams: self._encode_url(urlparams) self.set_proxy(None) self.history = history self.wait_continue = wait_continue self.max_redirects = max_redirects self.allow_redirects = allow_redirects self.charset = charset or "utf-8" self.version = version self.decompress = decompress self.encode_multipart = encode_multipart self.multipart_boundary = multipart_boundary self.websocket_handler = websocket_handler self.source_address = source_address self.new_parser() if self._scheme in tls_schemes: self._ssl = client.ssl_context(**ignored) self.headers = client.get_headers(self, headers) cookies = cookiejar_from_dict(client.cookies, cookies) if cookies: cookies.add_cookie_header(self) self.unredirected_headers["host"] = host_no_default_port(self._scheme, self._netloc) client.set_proxy(self) self.data = data
def __init__(self, client, url, method, inp_params=None, headers=None, data=None, files=None, history=None, charset=None, encode_multipart=True, multipart_boundary=None, source_address=None, allow_redirects=False, max_redirects=10, decompress=True, version=None, wait_continue=False, websocket_handler=None, cookies=None, urlparams=None, **ignored): self.client = client self._data = None self.files = files self.urlparams = urlparams self.inp_params = inp_params or {} self.unredirected_headers = Headers(kind='client') self.method = method.upper() self.full_url = url if urlparams: self._encode_url(urlparams) self.set_proxy(None) self.history = history self.wait_continue = wait_continue self.max_redirects = max_redirects self.allow_redirects = allow_redirects self.charset = charset or 'utf-8' self.version = version self.decompress = decompress self.encode_multipart = encode_multipart self.multipart_boundary = multipart_boundary self.websocket_handler = websocket_handler self.source_address = source_address self.new_parser() if self._scheme in tls_schemes: self._ssl = client.ssl_context(**ignored) self.headers = client.get_headers(self, headers) cookies = cookiejar_from_dict(client.cookies, cookies) if cookies: cookies.add_cookie_header(self) self.unredirected_headers['host'] = host_no_default_port( self._scheme, self._netloc) client.set_proxy(self) self.data = data
def __init__(self, client, url, method, inp_params=None, headers=None, data=None, files=None, history=None, auth=None, charset=None, encode_multipart=True, multipart_boundary=None, source_address=None, allow_redirects=False, max_redirects=10, decompress=True, version=None, wait_continue=False, websocket_handler=None, cookies=None, urlparams=None, stream=False, proxies=None, verify=True, **ignored): self.client = client self._data = None self.files = files self.urlparams = urlparams self.inp_params = inp_params or {} self.unredirected_headers = Headers(kind='client') self.method = method.upper() self.full_url = url if urlparams: self._encode_url(urlparams) self.history = history self.wait_continue = wait_continue self.max_redirects = max_redirects self.allow_redirects = allow_redirects self.charset = charset or 'utf-8' self.version = version self.decompress = decompress self.encode_multipart = encode_multipart self.multipart_boundary = multipart_boundary self.websocket_handler = websocket_handler self.source_address = source_address self.stream = stream self.verify = verify self.new_parser() if self._scheme in tls_schemes: self._ssl = client.ssl_context(verify=self.verify, **ignored) if auth and not isinstance(auth, Auth): auth = HTTPBasicAuth(*auth) self.auth = auth self.headers = client.get_headers(self, headers) cookies = cookiejar_from_dict(client.cookies, cookies) if cookies: cookies.add_cookie_header(self) self.unredirected_headers['host'] = host_no_default_port(self._scheme, self._netloc) self.data = data self._set_proxy(proxies)
def _set_proxy(self, proxies, ignored): url = urlparse(self.url) self.unredirected_headers['host'] = host_no_default_port(url.scheme, url.netloc) if url.scheme in tls_schemes: self._ssl = self.client._ssl_context(verify=self.verify, **ignored) request_proxies = self.client.proxies.copy() if proxies: request_proxies.update(proxies) self.proxies = request_proxies # if url.scheme in request_proxies: host, port = get_hostport(url.scheme, url.netloc) no_proxy = [n for n in request_proxies.get('no', '').split(',') if n] if not any(map(host.endswith, no_proxy)): url = request_proxies[url.scheme] if not self._ssl: self._proxy = url else: self._tunnel = HttpTunnel(self, url)
def netloc(self): return host_no_default_port(self.scheme, '%s:%s' % self.address)