Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 19401|Odpoveď: 2

[ASP.NET] ASP.NET použiť HttpListener na obnovenie breakpointov súboru

[Kopírovať odkaz]
Zverejnené 27. 11. 2019 10:42:41 | | |
Princíp pokračovania v bode prerušenia je veľmi jednoduchý, teda hlavička HTTP požiadavky a odpovede sa líši od bežného sťahovania.
Pri požiadavke na dokument na serveri bežným spôsobom sú požiadavky, ktoré server prijíma, nasledovné:
Hlavička požiadavky:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Hlavička odpovede:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Keď server podporuje obnovenie breakpointu, požiadavky a reakcie sú nasledovné:
Hlavička požiadavky:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Hlavička odpovede:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Rôzne časti oboch správ sú označené červenými sekciami. Dá sa to vidieť:
Hlavička Range sa používa na identifikáciu požadovaného miesta sťahovania zákazníka.
Keď je číslo odpovede servera 200, znamená to, že sťahovanie začína z hlavičky súboru, a 206 znamená, že prenos začína z konkrétneho miesta súboru.
Inými slovami, pri podpore obnovenia breakpointu môžete začať sťahovať z ktorejkoľvek časti súboru, zatiaľ čo bežným spôsobom je možné sťahovať len z hlavičky súboru.
Aby server podporoval obnovenie breakpointov, je potrebné vyriešiť nasledujúce problémy:

1。 Ak ide o žiadosť o obnovenie, musíte získať rozsah súborov požadovaný klientom.
Ako vidíte z vyššie uvedenej analýzy, keď klient vysiela bod prerušenia, pole Range sa pridá do hlavičky paketu a môžete určiť, či ide o požiadavku na prenos prerušujúceho bodu nasledovne.
rozsah reťazca = požiadavka. Hlavičky["Range"];
bool isResume = reťazec. IsNullOrEmpty(range);

2。 Správne reagovať klientovi, aby upozornil klientský server, že koncový bod je podporovaný na pokračovanie
Pri odosielaní požiadavky na bod prerušenia možno nastaviť príslušné číslo pre klienta nasledovne:
Odpoveď. StatusCode = 206;

3。 Dodávajte správny obsah, ktorý klient potrebuje
Dodanie správneho obsahu, ktorý klient vyžaduje, zvyčajne zahŕňa nasledujúce kroky
Získajte rozsah požiadaviek na súbor klienta analýzou tohto rozsahu.
Keď je odoslaný breakpoint, požadovaná dĺžka je kratšia ako dĺžka súboru, preto je potrebné nastaviť správnu odpoveď. PropertyContentLength64.
Správne preneste požadovaný obsah
Príklad kódu:






Predchádzajúci:httplistener počúva, aby získal parametre požiadavky POST
Budúci:18 filozofických komiksov, z ktorých všetci sú majstri
Zverejnené 27. 11. 2019 13:14:14 |
Mark
Zverejnené 30. 11. 2019 12:04:39 |
označené      
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com