Requêtes - Gestion des délais d'expiration

Les délais d'expiration peuvent être facilement ajoutés à l'URL que vous demandez. Il se trouve que vous utilisez une URL tierce et attendez une réponse. Il est toujours judicieux de donner un délai d'expiration sur l'URL, car nous souhaitons peut-être que l'URL réponde dans un délai avec une réponse ou une erreur. Si vous ne le faites pas, vous pouvez attendre indéfiniment cette demande.

Nous pouvons donner un délai d'expiration à l'URL en utilisant le paramètre timeout et la valeur est passée en secondes comme indiqué dans l'exemple ci-dessous -

Exemple

import requests
getdata = 
requests.get('https://jsonplaceholder.typicode.com/users',timeout=0.001)
print(getdata.text)

Production

raise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout:
HTTPSConnectionPool(host='jsonplaceholder.typicode.com', 
port=443): Max retries exceeded with url: /users (Caused 
by Connect
TimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 
0x000000B02AD
E76A0>, 'Connection to jsonplaceholder.typicode.com timed out. (connect 
timeout = 0.001)'))

Le délai imparti est le suivant -

getdata = 
requests.get('https://jsonplaceholder.typicode.com/users',timeout=0.001)

L'exécution lève une erreur de délai de connexion comme indiqué dans la sortie. Le délai imparti est de 0,001, ce qui n'est pas possible pour la demande de récupérer la réponse et génère une erreur. Maintenant, nous allons augmenter le délai et vérifier.

Exemple

import requests
getdata = 
requests.get('https://jsonplaceholder.typicode.com/users',timeout=1.000)
print(getdata.text)

Production

E:\prequests>python makeRequest.py
[
   {
      "id": 1,
      "name": "Leanne Graham",
      "username": "Bret",
      "email": "[email protected]",
      "address": {
         "street": "Kulas Light",
         "suite": "Apt. 556",
         "city": "Gwenborough",
         "zipcode": "92998-3874",
         "geo": {
            "lat": "-37.3159",
            "lng": "81.1496"
         }
      },
      "phone": "1-770-736-8031 x56442",
      "website": "hildegard.org",
      "company": {
         "name": "Romaguera-Crona",
         "catchPhrase": "Multi-layered client-server neural-net",
         "bs": "harness real-time e-markets"
      }
   }
]

Avec un timeout de 1 seconde, nous pouvons obtenir la réponse pour l'URL demandée.