Every request we send to the server turns to be a PreparedRequest
by default. The request
attribute of the Response
object which is received from an API call or a session call is actually the PreparedRequest
that was used.
There might be cases in which we ought to send a request which would incur an extra step of adding a different parameter. Parameters can be cookies
, files
, auth
, timeout
and so on. We can handle this extra step efficiently by using the combination of sessions and prepared requests. Let us look at an example:
>>> from requests import Request, Session >>> header = {} >>> request = Request('get', 'some_url', headers=header)
We are trying to send a get
request with a header in the previous example. Now, take an instance where we are planning to send the request with the same method, URL, and headers, but we want to add some more parameters to it. In this condition, we can use the session method to receive complete session level state to access the parameters of the initial sent request. This can be done by using the session
object.
>>> from requests import Request, Session >>> session = Session() >>> request1 = Request('GET', 'some_url', headers=header)
Now, let us prepare a request using the session
object to get the values of the session
level state:
>>> prepare = session.prepare_request(request1)
We can send the request object request
with more parameters now, as follows:
>>> response = session.send(prepare, stream=True, verify=True) 200
Voila! Huge time saving!
The prepare
method prepares the complete request with the supplied parameters. In the previous example, the prepare_request
method was used. There are also some other methods like prepare_auth
, prepare_body
, prepare_cookies
, prepare_headers
, prepare_hooks
, prepare_method
, prepare_url
which are used to create individual properties.
18.189.186.109