Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 19401|Atbildi: 2

[ASP.NET] ASP.NET izmantot HttpListener, lai atsāktu failu pārtraukuma punktus

[Kopēt saiti]
Publicēts 27.11.2019 10:42:41 | | |
Pārtraukuma punkta turpinājuma princips ir ļoti vienkāršs, tas ir, HTTP pieprasījuma un atbildes ziņojuma galvene atšķiras no parastās lejupielādes.
Pieprasot dokumentu izsniedzējam parastajā veidā, iesniegtais pieprasījums un saņemtais izsniedzējs ir šāds:
Pieprasījuma galvene:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Atbildes galvene:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Ja serveris atbalsta pārtraukuma punkta atsākšanu, pieprasījums un atbilde ir šāda:
Pieprasījuma galvene:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Atbildes galvene:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Abu ziņojumu dažādās daļas ir atzīmētas ar sarkanām sadaļām. To var redzēt:
Diapazona galvene tiek izmantota, lai identificētu klienta vēlamo lejupielādes vietu.
Ja servera atbildes numurs ir 200, tas nozīmē, ka lejupielāde sākas no faila galvenes, un 206 nozīmē, ka pārsūtīšana sākas no noteiktas faila atrašanās vietas.
Citiem vārdiem sakot, atbalstot pārtraukuma punkta atsākšanu, varat sākt lejupielādi no jebkuras faila daļas, bet parastajā veidā var lejupielādēt tikai no faila galvenes.
Lai atsāktu servera atbalsta pārtraukuma punktu, ir jāatrisina šādas problēmas:

1。 Ja tas ir atsākšanas pieprasījums, jums ir jāiegūst klientam nepieciešamais failu diapazons.
Kā redzat no iepriekš minētās analīzes, kad klients pārraida pārtraukuma punktu, paketes galvenei tiek pievienots lauks Diapazons, un jūs varat noteikt, vai tas ir pārtraukuma punkta pārraides pieprasījums, kā norādīts tālāk.
virknes diapazons = pieprasījums. Galvenes["Diapazons"];
bool isResume = virkne. IsNullOrEmpty(diapazons);

2。 Pareizi atbildiet klientam, lai paziņotu klienta serverim, ka galapunkts tiek atbalstīts turpināšanai
Nosūtot pieprasījumu par pārtraukuma punktu, atbilstošo numuru klientam var iestatīt šādi:
atbilde. StatusCode = 206;

3。 Nodrošiniet klientam nepieciešamo saturu
Pareiza klienta pieprasītā satura piegāde parasti ietver šādas darbības
Iegūstiet klienta failu pieprasījumu diapazonu, analizējot diapazonu.
Kad tiek nosūtīts pārtraukuma punkts, nepieciešamais garums ir īsāks par faila garumu, tāpēc ir jāiestata pareizā atbilde. ContentLength64 rekvizīts.
Pareizi pārsūtiet nepieciešamo saturu
Koda piemērs:






Iepriekšējo:httplistener klausās, lai iegūtu POST pieprasījuma parametrus
Nākamo:18 filozofiskie komiksi, no kuriem visi ir meistari
Publicēts 27.11.2019 13:14:14 |
Atzīmēt
Publicēts 30.11.2019 12:04:39 |
atzīmēts      
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com