Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 19401|Jawab: 2

[ASP.NET] ASP.NET menggunakan HttpListener untuk melanjutkan titik henti file

[Salin tautan]
Diposting pada 27/11/2019 10.42.41 | | |
Prinsip kelanjutan breakpoint sangat sederhana, yaitu header permintaan HTTP dan pesan balasan berbeda dari unduhan normal.
Saat meminta dokumen di server dengan cara normal, permintaan yang dibuat dan server yang diterima adalah sebagai berikut:
Header permintaan:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Header respons:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Saat server mendukung dimulainya kembali titik henti, permintaan dan respons adalah sebagai berikut:
Header permintaan:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Header respons:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Bagian yang berbeda dari kedua pesan ditandai dengan bagian merah. Dapat dilihat:
Header Rentang digunakan untuk mengidentifikasi lokasi unduhan yang diinginkan pelanggan.
Ketika nomor jawaban server adalah 200, itu berarti unduhan dimulai dari header file, dan 206 berarti transfer dimulai dari lokasi file tertentu.
Dengan kata lain, saat mendukung dimulainya kembali breakpoint, Anda dapat mulai mengunduh dari bagian mana pun dari file, sedangkan cara normal hanya dapat mengunduh dari header file.
Untuk membuat server mendukung dimulainya kembali titik henti, masalah berikut perlu diselesaikan:

1。 Jika ini adalah permintaan dilanjutkan, Anda perlu mendapatkan rentang file yang diperlukan oleh klien.
Seperti yang Anda lihat dari analisis di atas, ketika klien mentransmisikan titik henti, bidang Rentang ditambahkan ke header paket, dan Anda dapat menentukan apakah itu permintaan transmisi titik henti sebagai berikut.
rentang string = permintaan. Headers["Rentang"];
bool isResume = string. IsNullOrEmpty(rentang);

2。 Tanggapi klien dengan benar untuk memberi tahu server klien bahwa titik akhir didukung untuk kelanjutan
Saat mengirim permintaan untuk titik henti, nomor yang sesuai untuk klien dapat diatur sebagai berikut:
tanggapan. Kode Status = 206;

3。 Memberikan konten yang tepat yang dibutuhkan klien
Memberikan konten yang benar yang diperlukan oleh klien umumnya melibatkan langkah-langkah berikut
Dapatkan rentang permintaan file klien dengan menganalisis rentang.
Saat titik henti dikirim, panjang yang diperlukan lebih pendek dari panjang file, sehingga respons yang benar perlu diatur. ContentLength64.
Mentransfer konten yang diperlukan dengan benar
Contoh kode:






Mantan:httplistener mendengarkan untuk mendapatkan parameter permintaan POST
Depan:18 komik filosofis, semuanya master
Diposting pada 27/11/2019 13.14.14 |
tandai
Diposting pada 30/11/2019 12.04.39 |
ditandai      
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com