Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 19401|Svar: 2

[ASP.NET] ASP.NET bruger HttpListener til at genoptage filbreakpoints

[Kopier link]
Opslået på 27/11/2019 10.42.41 | | |
Princippet om breakpoint-fortsættelse er meget enkelt, det vil sige, at headeren på HTTP-anmodningen og svarbeskeden er forskellig fra den normale download.
Når man anmoder om et dokument på en server på normal vis, er den anmodning, der laves, og den modtagne server som følger:
Anmodningsoverskrift:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Svar-header:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Når serveren understøtter genoptagelse af breakpoint, er anmodningen og svaret som følger:
Anmodningsoverskrift:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Svar-header:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

De forskellige dele af de to beskeder er markeret med røde sektioner. Den kan ses:
Range-headeren bruges til at identificere kundens ønskede downloadlokation.
Når serverens svarnummer er 200, betyder det, at downloadet starter fra filheaderen, og 206 betyder, at overførslen starter fra en bestemt placering af filen.
Med andre ord, når man understøtter breakpoint-genoptagelse, kan man begynde at downloade fra enhver del af filen, mens den normale måde kun kan downloade fra filheaderen.
For at serveren kan understøtte breakpoint genoptages, skal følgende problemer løses:

1。 Hvis det er en genoptagelsesanmodning, skal du skaffe det filområde, klienten kræver.
Som du kan se fra ovenstående analyse, når klienten sender et breakpoint, tilføjes Range-feltet til pakkeheaderen, og du kan afgøre, om det er en breakpoint-transmissionsanmodning som følger.
strengområde = anmodning. Headers["Range"];
bool isResume = streng. IsNullOrEmpty(område);

2。 Svar korrekt til klienten for at informere klientserveren om, at endpointet understøttes til fortsættelse
Når man sender en anmodning om et breakpoint, kan det tilsvarende tal for klienten sættes som følger:
svar. Statuskode = 206;

3。 Lever det rigtige indhold, som kunden har brug for
Levering af det korrekte indhold, som kunden kræver, indebærer som regel følgende trin
Få klientens filanmodningsområde ved at analysere området.
Når et brudpunkt sendes, er den krævede længde kortere end filens længde, så det korrekte svar skal sættes. ContentLength64 ejendom.
Overfør det nødvendige indhold korrekt
Kodeeksempel:






Tidligere:httplistener lytter for at hente POST-anmodningsparametrene
Næste:18 filosofiske komikere, som alle er mestre
Opslået på 27/11/2019 13.14.14 |
Mark
Opslået på 30/11/2019 12.04.39 |
markeret      
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com