Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 19401|Svare: 2

[ASP.NET] ASP.NET bruker HttpListener for å gjenoppta filbryterpunkter

[Kopier lenke]
Publisert på 27.11.2019 10:42:41 | | |
Prinsippet for fortsettelse av breakpoint er veldig enkelt, det vil si at headeren i HTTP-forespørselen og svarmeldingen er forskjellig fra den vanlige nedlastingen.
Når man forespør et dokument på en server på vanlig måte, er forespørselen og serveren som mottas som følger:
Forespørselsoverskrift:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Svarheader:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Når serveren støtter gjenopptakelse av breakpoint, er forespørselen og svaret som følger:
Forespørselsoverskrift:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Svarheader:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

De ulike delene av de to meldingene er merket med røde seksjoner. Den kan sees:
Range-headeren brukes til å identifisere kundens ønskede nedlastingssted.
Når serverens svarnummer er 200, betyr det at nedlastingen starter fra filhodet, og 206 betyr at overføringen starter fra et bestemt sted i filen.
Med andre ord, når du støtter breakpoint reresume, kan du begynne å laste ned fra hvilken som helst del av filen, mens den vanlige måten kun kan laste ned fra filheaderen.
For å få serveren til å støtte breakpoint igjen, må følgende problemer løses:

1。 Hvis det er en gjenopptakelsesforespørsel, må du skaffe filområdet som klienten krever.
Som du kan se fra analysen ovenfor, når klienten sender et breakpoint, legges Range-feltet til pakkeheaderen, og du kan avgjøre om det er en breakpoint-overføringsforespørsel som følger.
strengrekkevidde = forespørsel. Headers["Range"];
bool isResume = streng. IsNullOrEmpty(område);

2。 Svar korrekt til klienten for å varsle klientserveren om at endepunktet støttes for fortsettelse
Når man sender en forespørsel om et breakpoint, kan det tilsvarende nummeret for klienten settes som følger:
respons. Statuskode = 206;

3。 Levere det riktige innholdet kunden trenger
Å levere det riktige innholdet kunden krever, innebærer vanligvis følgende steg
Få tak i klientens filforespørselsområde ved å analysere området.
Når et breakpoint sendes, er den nødvendige lengden kortere enn filens lengde, så riktig respons må sattes. ContentLength64-egenskap.
Overfør det nødvendige innholdet korrekt
Kodeeksempel:






Foregående:httplistener lytter for å hente POST-forespørselsparametrene
Neste:18 filosofiske tegneserier, alle mestere
Publisert på 27.11.2019 13:14:14 |
Publisert på 30.11.2019 12:04:39 |
merket      
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com