Permintaan - Penanganan Timeout

Batas waktu dapat dengan mudah ditambahkan ke URL yang Anda minta. Kebetulan, Anda menggunakan URL pihak ketiga dan menunggu tanggapan. Itu selalu merupakan praktik yang baik untuk memberikan waktu tunggu pada URL, karena kami mungkin ingin URL merespons dalam rentang waktu dengan tanggapan atau kesalahan. Tidak melakukannya, dapat menyebabkan menunggu permintaan itu tanpa batas.

Kita dapat memberikan batas waktu ke URL dengan menggunakan parameter batas waktu dan nilai diteruskan dalam hitungan detik seperti yang ditunjukkan pada contoh di bawah -

Contoh

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

Keluaran

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)'))

Batas waktu yang diberikan adalah sebagai berikut -

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

Eksekusi memunculkan kesalahan batas waktu koneksi seperti yang ditunjukkan dalam output. Waktu tunggu yang diberikan adalah 0,001, yang tidak mungkin bagi permintaan untuk mendapatkan kembali respons dan melontarkan kesalahan. Sekarang, kami akan menambah waktu tunggu dan pemeriksaan.

Contoh

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

Keluaran

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"
      }
   }
]

Dengan waktu tunggu 1 detik, kita bisa mendapatkan respon untuk URL yang diminta.