Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 19401|Odgovoriti: 2

[ASP.NET] ASP.NET uporabite HttpListener za nadaljevanje prelomnih točk datoteke

[Kopiraj povezavo]
Objavljeno na 27. 11. 2019 10:42:41 | | |
Načelo nadaljevanja prelomnih točk je zelo preprosto, torej je glava HTTP zahteve in odgovora drugačna od običajnega prenosa.
Pri zahtevi dokumenta na strežniku na običajen način sta zahteva, ki jo strežnik prejme, naslednja:
Glava zahteve:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Glava odziva:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Ko strežnik podpira nadaljevanje prekinitve, sta zahteva in odgovor naslednja:
Glava zahteve:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Glava odziva:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Različni deli obeh sporočil so označeni z rdečimi sekcijami. Videti je lahko:
Glava Range se uporablja za identifikacijo želene lokacije prenosa stranke.
Ko je številka odgovora strežnika 200, to pomeni, da se prenos začne z glavo datoteke, 206 pa pomeni, da se prenos začne na določeni lokaciji datoteke.
Z drugimi besedami, ko podpira obnovitev prekinitve, lahko začnete prenašati iz kateregakoli dela datoteke, medtem ko je običajen način prenos dovoljen le iz glave datoteke.
Da bi strežnik podpiral ponovno uporabo prekinitev, je treba rešiti naslednje težave:

1。 Če gre za zahtevo za nadaljevanje, morate pridobiti obseg datotek, ki jih zahteva odjemalec.
Kot lahko vidite iz zgornje analize, ko odjemalec pošilja prelomno točko, se polje Range doda glavi paketa in lahko določite, ali gre za zahtevo za prenos prekinitve, kot sledi.
String Range = Request. Glave["Range"];
bool isResume = string. IsNullOrEmpty(range);

2。 Pravilno odgovoriti odjemalcu, da obvesti odjemalski strežnik, da je končna točka podprta za nadaljevanje
Ko pošiljamo zahtevo za prekinitev, lahko ustrezno številko za odjemalca nastavimo takole:
Odgovor. StatusCode = 206;

3。 Dostavite pravo vsebino, ki jo naročnik potrebuje
Dostava pravilne vsebine, ki jo naročnik zahteva, običajno vključuje naslednje korake
Pridobite obseg zahtev po datotekah odjemalca z analizo razpona.
Ko je prelomna točka poslana, je zahtevana dolžina krajša od dolžine datoteke, zato je treba nastaviti pravilen odziv. VsebinaLength64 lastnina.
Pravilno prenesite zahtevano vsebino
Primer kode:






Prejšnji:httplistener posluša, da pridobi parametre zahteve POST
Naslednji:18 filozofskih stripov, vsi mojstri
Objavljeno na 27. 11. 2019 13:14:14 |
Mark
Objavljeno na 30. 11. 2019 12:04:39 |
označeno      
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com