Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 19401|Antwoord: 2

[ASP.NET] ASP.NET gebruik HttpListener om bestandsbreakpoints te hervatten

[Link kopiëren]
Geplaatst op 27-11-2019 10:42:41 | | |
Het principe van breakpoint-voortzetting is heel eenvoudig, dat wil zeggen, de header van het HTTP-verzoek- en antwoordbericht verschilt van de normale download.
Bij het aanvragen van een document op een server op de normale manier, zijn het verzoek en de ontvangen server als volgt:
Verzoekkop:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Reactiekop:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Wanneer de server breakpoint hervatting ondersteunt, zijn het verzoek en de reactie als volgt:
Verzoekkop:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Reactiekop:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

De verschillende delen van de twee berichten zijn gemarkeerd met rode secties. Het is te zien:
De Range-header wordt gebruikt om de gewenste downloadlocatie van de klant te identificeren.
Wanneer het antwoordnummer van de server 200 is, betekent dit dat de download begint vanaf de bestandsheader, en 206 betekent dat de overdracht begint vanaf een specifieke locatie van het bestand.
Met andere woorden, bij het ondersteunen van breekpunthervatting kun je beginnen met downloaden vanaf elk deel van het bestand, terwijl de normale manier alleen vanaf de bestandsheader kan downloaden.
Om de server breakpoint te kunnen hervatten, moeten de volgende problemen worden opgelost:

1。 Als het een hervattingsverzoek is, moet je het bestandsbereik verkrijgen dat de klant vereist.
Zoals je kunt zien uit de bovenstaande analyse, wordt bij het verzenden van een breakpoint het Range-veld toegevoegd aan de pakketheader, en kun je bepalen of het een breakpoint-transmissieverzoek is als volgt.
Stringbereik = verzoek. Headers["Range"];
bool isResume = snaar. IsNullOrEmpty(bereik);

2。 Reageer correct op de client om de clientserver te informeren dat het eindpunt wordt ondersteund voor voortzetting
Bij het verzenden van een verzoek voor een breakpoint kan het bijbehorende nummer voor de client als volgt worden ingesteld:
reactie. StatusCode = 206;

3。 Lever de juiste content die de klant nodig heeft
Het leveren van de juiste content die de klant vereist, omvat doorgaans de volgende stappen
Verkrijg het bestandsaanvraagbereik van de client door het bereik te analyseren.
Wanneer een breekpunt wordt verzonden, is de vereiste lengte korter dan de lengte van het bestand, dus moet de juiste respons worden ingesteld. ContentLength64 eigendom.
Draag de benodigde inhoud correct over
Codevoorbeeld:






Vorig:httplistener luistert om de parameters van het POST-verzoek te krijgen
Volgend:18 filosofische strips, allemaal meesters
Geplaatst op 27-11-2019 13:14:14 |
Mark
Geplaatst op 30-11-2019 12:04:39 |
gemarkeerd      
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com