send() — requests Function Reference
Architecture documentation for the send() function in adapters.py from the requests codebase.
Entity Profile
Dependency Diagram
graph TD 66fc1563_b020_b369_a505_bc9abe7cf66d["send()"] 5fdf5d52_8295_768a_e20f_c6cefb721b91["HTTPAdapter"] 66fc1563_b020_b369_a505_bc9abe7cf66d -->|defined in| 5fdf5d52_8295_768a_e20f_c6cefb721b91 8afca6fd_1e23_31a7_341a_2a812103180b["send()"] 8afca6fd_1e23_31a7_341a_2a812103180b -->|calls| 66fc1563_b020_b369_a505_bc9abe7cf66d d00652e5_18d7_14ca_83b8_481002b86341["add_headers()"] d00652e5_18d7_14ca_83b8_481002b86341 -->|calls| 66fc1563_b020_b369_a505_bc9abe7cf66d 22824d7d_af0c_f593_6513_06ba28a4fc56["send()"] 22824d7d_af0c_f593_6513_06ba28a4fc56 -->|calls| 66fc1563_b020_b369_a505_bc9abe7cf66d b63a634d_66d8_29cd_773b_da0e87ccd411["get_connection_with_tls_context()"] 66fc1563_b020_b369_a505_bc9abe7cf66d -->|calls| b63a634d_66d8_29cd_773b_da0e87ccd411 f3317fc3_a2fa_ce2a_bb1a_4f53b0443c40["cert_verify()"] 66fc1563_b020_b369_a505_bc9abe7cf66d -->|calls| f3317fc3_a2fa_ce2a_bb1a_4f53b0443c40 19bcbaca_551c_4599_bbfe_015fc1d38ffa["request_url()"] 66fc1563_b020_b369_a505_bc9abe7cf66d -->|calls| 19bcbaca_551c_4599_bbfe_015fc1d38ffa d00652e5_18d7_14ca_83b8_481002b86341["add_headers()"] 66fc1563_b020_b369_a505_bc9abe7cf66d -->|calls| d00652e5_18d7_14ca_83b8_481002b86341 7086c4f7_aa89_192d_ccbb_8bfa981ed237["build_response()"] 66fc1563_b020_b369_a505_bc9abe7cf66d -->|calls| 7086c4f7_aa89_192d_ccbb_8bfa981ed237 8afca6fd_1e23_31a7_341a_2a812103180b["send()"] 66fc1563_b020_b369_a505_bc9abe7cf66d -->|calls| 8afca6fd_1e23_31a7_341a_2a812103180b style 66fc1563_b020_b369_a505_bc9abe7cf66d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
src/requests/adapters.py lines 592–698
def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
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.
:rtype: requests.Response
"""
try:
conn = self.get_connection_with_tls_context(
request, verify, proxies=proxies, cert=cert
)
except LocationValueError as e:
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,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
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,
)
except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)
except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)
if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)
if isinstance(e.reason, _ProxyError):
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does send() do?
send() is a function in the requests codebase, defined in src/requests/adapters.py.
Where is send() defined?
send() is defined in src/requests/adapters.py at line 592.
What does send() call?
send() calls 6 function(s): add_headers, build_response, cert_verify, get_connection_with_tls_context, request_url, send.
What calls send()?
send() is called by 3 function(s): add_headers, send, send.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free