Tingkatkan Pengunduh Fail HttpClient Anda dengan Bar Kemajuan
Panduan ini menunjukkan cara menambah bar kemajuan pada pemuat turun fail yang dibina menggunakan HttpClient, menangani senario di mana DownloadOperations
tidak boleh dilaksanakan kerana kekangan sijil pelayan.
Memanfaatkan IProgress
.NET 4.5 dan versi yang lebih baru menawarkan antara muka IProgress<T>
, sesuai untuk kemas kini kemajuan tak segerak. Menyepadukan IProgress<T>
memberikan maklum balas masa nyata tentang kemajuan muat turun.
Kaedah Sambungan untuk Penyepaduan Lancar
Untuk menggabungkan IProgress<T>
dengan mudah, kami akan mencipta kaedah sambungan untuk HttpClient
, membenarkan sintaks ringkas ini:
<code class="language-csharp">await client.DownloadAsync(DownloadUrl, file, progress, cancellationToken);</code>
Langkah Pelaksanaan Terperinci
Kaedah sambungan akan melaksanakan tindakan utama ini:
HttpClient.ReadAsStreamAsync()
digunakan untuk bacaan strim tak segerak yang cekap.IProgress<float>
dibekalkan, kaedah menggunakan StreamExtensions.CopyToAsync()
untuk mengurus kemas kini kemajuan. Kemas kini ini mencerminkan peningkatan bilangan bait yang dimuat turun.StreamExtensions.CopyToAsync()
mengendalikan penyalinan data dan pada masa yang sama melaporkan kemajuan melalui IProgress<long>
.Dengan menggunakan IProgress<T>
, anda boleh menyepadukan maklumat kemajuan dengan lancar ke dalam bar kemajuan anda atau elemen UI lain, meningkatkan pengalaman pengguna dengan ketara semasa muat turun fail.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Bar Kemajuan pada Pemuat Turun Fail HttpClient?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!