|
|
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 parametrusNākamo:18 filozofiskie komiksi, no kuriem visi ir meistari
|