Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between using requests.get() and requests.session().get()?

Sometimes I see people invoke web API using requests.Session object:

client = requests.session() resp = client.get(url='...') 

But sometimes they don't:

resp = requests.get(url='...') 

Can somebody explain when should we use Session and when we don't need them?

like image 620
Fred Pym Avatar asked Oct 07 '15 07:10

Fred Pym


People also ask

What is request session get?

So "request. session. get("name",False):" statement returns the value of the 'name' items if it exists in the session if it doesn't then a default of False is returned.

What does requests get () do?

The get() method sends a GET request to the specified url.

What is a session Python?

Unlike cookies, Session (session) data is stored on the server. The session is the interval at which the client logs on to the server and logs out the server. The data that is required to be saved in the session is stored in a temporary directory on the server.

What is stream true in requests get?

We specify the stream = True in the request get method. This allows us to control when the body of the binary response is downloaded.


Video Answer


2 Answers

Under the hood, requests.get() creates a new Session object for each request made.

By creating a session object up front, you get to reuse the session; this lets you persist cookies, for example, and lets you re-use settings to be used for all connections such as headers and query parameters. To top this all off, sessions let you take advantage of connection pooling; reusing connections to the same host.

See the Sessions documentation:

The Session object allows you to persist certain parameters across requests. It also persists cookies across all requests made from the Session instance, and will use urllib3‘s connection pooling. So if you’re making several requests to the same host, the underlying TCP connection will be reused, which can result in a significant performance increase (see HTTP persistent connection).

like image 95
Martijn Pieters Avatar answered Sep 30 '22 15:09

Martijn Pieters


To quote the documentation

The Session object allows you to persist certain parameters across requests. It also persists cookies across all requests made from the Session instance.

like image 45
Christian Witts Avatar answered Sep 30 '22 15:09

Christian Witts