Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 19401|Odpověď: 2

[ASP.NET] ASP.NET použít HttpListener k obnovení přerušení souboru

[Kopírovat odkaz]
Zveřejněno 27.11.2019 10:42:41 | | |
Princip pokračování breakpointů je velmi jednoduchý, tedy hlavička HTTP požadavku a odpovědi se liší od běžného stahování.
Při běžném požadavku na server jsou požadavky a obdržené servery následující:
Hlavička požadavku:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Hlavička odpovědi:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Když server podporuje obnovení přerušovacího bodu, požadavky a odpovědi jsou následující:
Hlavička požadavku:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Hlavička odpovědi:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Různé části obou zpráv jsou označeny červenými sekcemi. Lze ji vidět:
Záhlaví Range slouží k identifikaci požadovaného místa stahování zákazníka.
Když je číslo odpovědi serveru 200, znamená to, že stahování začíná z hlavičky souboru, a 206 znamená, že přenos začíná z konkrétního místa souboru.
Jinými slovy, při podpoře obnovení breakpointu můžete začít stahovat z jakékoli části souboru, zatímco běžným způsobem lze stahovat pouze z hlavičky souboru.
Aby server podporoval obnovení breakpointů, je třeba vyřešit následující problémy:

1。 Pokud jde o požadavek na obnovení, musíte získat rozsah souborů požadovaný klientem.
Jak je vidět z výše uvedené analýzy, když klient vysílá breakpoint, pole Range se přidá do hlavičky paketu a můžete určit, zda se jedná o požadavek na přerušovací přenos následujícím způsobem.
rozsah řetězce = požadavek. Hlavičky["Range"];
bool isResume = řetězec. IsNullOrEmpty(rozsah);

2。 Správně reagovat na klienta a upozornit server, že endpoint je podporován pro pokračování
Při odeslání požadavku na breakpoint lze nastavit odpovídající číslo pro klienta následovně:
odpověď. StatusCode = 206;

3。 Dodat správný obsah, který klient potřebuje
Doručení správného obsahu požadovaného klientem obvykle zahrnuje následující kroky
Získejte rozsah požadavků na soubor klienta analýzou tohoto rozsahu.
Když je odeslán breakpoint, požadovaná délka je kratší než délka souboru, takže je třeba nastavit správnou odpověď. PropertyLength64.
Správně přeneste požadovaný obsah
Příklad kódu:






Předchozí:httplistener naslouchá, aby získal parametry požadavku POST
Další:18 filozofických komiksů, z nichž všichni jsou mistři
Zveřejněno 27.11.2019 13:14:14 |
mark
Zveřejněno 30.11.2019 12:04:39 |
označeno      
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com