Drone Aquila16 FPV Kit LiteRadioWaktu Penerbangan (4.35V-3.4V) : 8 menit. Bahan Bingkai : Hitam PA12. Googles : FPV VR03. Motor : 1102|18000KV. Berat : 2000 gram Buy |
Requests merupakan librari standar yang digunakan untuk membuat request HTTP dengan python. Python Requests mengabstraksi kerumitan berbagai macam method request HTTP menjadi lebih sederhana dan mudah dimengerti.
Dalam tutorial ini Anda akan mempelajari apa saja hal-hal yang mempengaruhi performa librari Python Requests saat berada pada environment production, berikut ini 3 hal yang akan kita pelajari:
Secara default, requests
akan menunggu respons tanpa batas waktu, jadi Anda harus menentukan durasi waktu tunggu untuk mencegah hal ini terjadi. Untuk mengatur batas waktu request, gunakan timeout
parameter. timeout
dapat berupa bilangan bulat atau float yang mewakili jumlah detik untuk menunggu respons sebelum waktu habis:
>>> requests.get('https://api.github.com/', timeout=1).status_code
200
>>> requests.get('https://api.github.com/', timeout=3.05).status_code
200
Anda juga dapat menambahkan Tuple ke timeout dengan elemen pertama sebagai batas waktu koneksi (waktu yang memungkinkan klien untuk membuat koneksi ke server), dan yang kedua adalah batas waktu baca (waktu yang akan menunggu tanggapan setelah klien telah membuat koneksi ke server):
>>> print(requests.get('https://api.github.com/', timeout=(2,5)).status_code)
200
Jika request HTTP terhubung dalam waktu 2 detik dan menerima data dalam waktu 5 detik sejak koneksi dibuat, maka respons akan dikembalikan seperti sebelumnya. Jika waktu request HTTP habis, maka fungsi akan memunculkan Timeout pengecualian
import requests
from requests.exceptions import Timeouttry:
response = requests.get('https://api.github.com', timeout=1)
print(response.status_code)
except Timeout:
print('The request timed out')
get()
dan post()
. Fungsi-fungsi ini adalah abstraksi dari apa yang terjadi saat Anda membuat request HTTP. Mereka menyembunyikan detail implementasi seperti bagaimana koneksi dikelola, sehingga Anda tidak perlu memikirkan bagaimana proses itu terjadi.
Di bawah abstraksi itu ada kelas yang disebut Session
. Jika Anda perlu menyempurnakan kontrol Anda atas request HTTP yang dibuat atau meningkatkan kinerja request HTTP, Anda mungkin perlu menggunakan Session
instance secara langsung.
Sesi digunakan untuk mempertahankan parameter di seluruh request HTTP. Misalnya, jika Anda ingin menggunakan autentikasi yang sama di beberapa request HTTP, Anda dapat menggunakan sesi:
import requests
from getpass import getpasswith requests.Session() as session:
session.auth = ('username', getpass())
response = session.get('https://api.github.com/user')print(response.headers)
print(response.json())
Setiap kali Anda membuat request HTTP dengan session
, setelah diinisialisasi dengan kredensial autentikasi, kredensial akan dipertahankan.