Skip to content

Commit

Permalink
Pass arguments from instance dict to urlopen in HTTPAdapter.send
Browse files Browse the repository at this point in the history
  • Loading branch information
joren485 committed Sep 12, 2023
1 parent 7b0e038 commit edfac36
Showing 1 changed file with 21 additions and 24 deletions.
45 changes: 21 additions & 24 deletions src/requests/adapters.py
Expand Up @@ -154,6 +154,8 @@ def __init__(

self.init_poolmanager(pool_connections, pool_maxsize, block=pool_block)

self.urllib3_response_options = {}

def __getstate__(self):
return {attr: getattr(self, attr, None) for attr in self.__attrs__}

Expand Down Expand Up @@ -431,14 +433,7 @@ def proxy_headers(self, proxy):
return headers

def send(
self,
request,
stream=False,
timeout=None,
verify=True,
cert=None,
proxies=None,
**response_kwargs,
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
Expand All @@ -453,7 +448,6 @@ def send(
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:param response_kwargs: (optional) Additional arguments passed to HTTPConnectionPool.urlopen.
:rtype: requests.Response
"""

Expand All @@ -463,7 +457,6 @@ def send(
raise InvalidURL(e, request=request)

self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
Expand All @@ -489,21 +482,25 @@ def send(
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)

urlopen_kwargs = self.urllib3_response_options.copy()
urlopen_kwargs.update(
{
"method": request.method,
"url": self.request_url(request, proxies),
"body": request.body,
"headers": request.headers,
"redirect": False,
"assert_same_host": False,
"preload_content": False,
"decode_content": False,
"retries": self.max_retries,
"timeout": timeout,
"chunked": chunked,
}
)

try:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
chunked=chunked,
**response_kwargs,
)
resp = conn.urlopen(**urlopen_kwargs)

except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)
Expand Down

0 comments on commit edfac36

Please sign in to comment.