Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 19401|Atsakyti: 2

[ASP.NET] ASP.NET naudoti "HttpListener" failų stabdymo taškams atnaujinti

[Kopijuoti nuorodą]
Paskelbta 2019-11-27 10:42:41 | | |
Lūžio taško tęsimo principas yra labai paprastas, tai yra, HTTP užklausos ir atsakymo pranešimo antraštė skiriasi nuo įprasto atsisiuntimo.
Įprastu būdu prašant dokumento serveryje, pateiktas prašymas ir gautas įteikėjas yra tokie:
Užklausos antraštė:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Atsakymo antraštė:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Kai serveris palaiko stabdos taško atnaujinimą, užklausa ir atsakymas yra tokie:
Užklausos antraštė:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Atsakymo antraštė:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Skirtingos abiejų pranešimų dalys pažymėtos raudonomis skiltimis. Tai galima pamatyti:
Diapazono antraštė naudojama kliento pageidaujamai atsisiuntimo vietai nustatyti.
Kai serverio atsakymo numeris yra 200, tai reiškia, kad atsisiuntimas prasideda nuo failo antraštės, o 206 reiškia, kad perkėlimas prasideda nuo konkrečios failo vietos.
Kitaip tariant, palaikydami stabdos taško atnaujinimą, galite pradėti atsisiųsti iš bet kurios failo dalies, o įprastu būdu galite atsisiųsti tik iš failo antraštės.
Kad serverio palaikymas būtų atnaujintas, reikia išspręsti šias problemas:

1。 Jei tai atnaujinimo užklausa, turite gauti kliento reikalaujamą failų diapazoną.
Kaip matote iš aukščiau pateiktos analizės, kai klientas perduoda lūžio tašką, laukas Diapazonas pridedamas prie paketo antraštės ir galite nustatyti, ar tai yra lūžio taško perdavimo užklausa, kaip nurodyta toliau.
eilutės diapazonas = užklausa. Antraštės["Diapazonas"];
bool isResume = eilutė. IsNullOrEmpty(diapazonas);

2。 Teisingai atsakyti klientui, kad praneštų kliento serveriui, kad galinis punktas palaikomas tęsiniui
Siunčiant užklausą dėl lūžio taško, atitinkamą kliento numerį galima nustatyti taip:
atsakymas. StatusCode = 206;

3。 Pateikite klientui reikalingą turinį
Norint pateikti teisingą kliento reikalaujamą turinį, paprastai reikia atlikti šiuos veiksmus
Gaukite kliento failų užklausų diapazoną analizuodami diapazoną.
Kai siunčiamas lūžio taškas, reikiamas ilgis yra trumpesnis nei failo ilgis, todėl reikia nustatyti teisingą atsakymą. Ypatybė ContentLength64.
Teisingai perkelkite reikiamą turinį
Kodo pavyzdys:






Ankstesnis:httplistener klausosi, kad gautų POST užklausos parametrus
Kitą:18 filosofinių komiksų, kurie visi yra meistrai
Paskelbta 2019-11-27 13:14:14 |
Ženklas
Paskelbta 2019-11-30 12:04:39 |
pažymėta      
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com