.NET Web API Client: Kitaran hidup terbaik dari contoh httpclient
.NET Web API Client sering berinteraksi dengan pelbagai mata API. Masalah biasa adalah kitaran hidup terbaik mengenai contoh httpclient: harus berkongsi contoh untuk pelbagai panggilan, atau membuat contoh baru untuk setiap panggilan?
Kelebihan berkongsi contoh httpclient
Buat satu contoh httpclient tunggal dan gunakannya semula dalam pelbagai panggilan untuk mempunyai kelebihan berikut:
kelayakan dan cookie:
HttpClientHandler penyelenggaraan kelayakan dan kuki, kelayakan dan kuki ini direka untuk menggunakannya semula. RE -Sinstanatied httpClient perlu menetapkan semula nilai -nilai ini.
- Pengepala lalai tersuai: penyimpanan harta DefaultrequestHeaders disimpan dalam tajuk tersuai yang digunakan dalam pelbagai permintaan. Menetapkan semula mereka dalam setiap permintaan akan memusnahkan tujuan mereka.
httpmessageHandler: - sokongan httpclient untuk menambah httpmessageHandler ke paip permintaan/tindak balas, untuk titik perhatian cross -sectional (contohnya, rekod log, kerepek). HttpClient yang boleh diguna semula dapat memastikan program pemprosesan ini sentiasa digunakan.
overhead contoh httpclient sahaja -
Walaupun terdapat banyak kelebihan untuk berkongsi contoh httpclient, ia juga akan menjana overhead ketika berurusan dengan contoh:
TCP/IP Connection dimatikan:
Pertimbangan Prestasi
Prestasi penggunaan contoh httpclient dalam satu masa bergantung kepada faktor -faktor seperti jenis rangkaian dan protokol: -
LAN (LAN) menggunakan http:
kerana mekanisme jaminan TCP yang mendasari, kehilangan prestasi boleh diabaikan.
Internet menggunakan http: disebabkan oleh re -establition sambungan, 40% kerugian prestasi diperhatikan.
HTTPS CONNECTION: Apabila menggunakan HTTPS, kesannya dijangka lebih besar.
- cadangan
Berdasarkan pertimbangan ini, amalan terbaik adalah - untuk mengekalkan contoh httpClient untuk satu -satunya API untuk setiap sambungan, supaya ia sama dengan kitaran hidup aplikasi . Ini mengimbangi kelebihan kelayakan, kepala dan program pemprosesan yang boleh diguna semula, serta overhead penciptaan dan pemprosesan contoh httpclient.
Atas ialah kandungan terperinci Sekiranya saya menggunakan semula satu contoh httpclient tunggal atau membuat yang baru untuk setiap panggilan API web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!