Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 19401|Vastaus: 2

[ASP.NET] ASP.NET käyttää HttpListeneriä tiedostojen keskeytyspisteiden jatkamiseen

[Kopioi linkki]
Julkaistu 27.11.2019 10.42.41 | | |
Breakpoint-jatkon periaate on hyvin yksinkertainen: HTTP-pyynnön ja vastauksen otsikko eroaa normaalista latauksesta.
Kun pyydetään asiakirjaa palvelimella normaalisti, tehty pyyntö ja vastaanotettu pyyntö ovat seuraavat:
Pyyntöotsikko:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Vastauksen otsikko:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Kun palvelin tukee taukopisteen jatkamista, pyyntö ja vastaus ovat seuraavat:
Pyyntöotsikko:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Vastauksen otsikko:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Kahden viestin eri osat on merkitty punaisilla osilla. Se näkyy:
Range-otsikkoa käytetään asiakkaan halutun lataussijainnin tunnistamiseen.
Kun palvelimen vastausnumero on 200, se tarkoittaa, että lataus alkaa tiedoston otsikosta, ja 206 tarkoittaa, että siirto alkaa tiedoston tietystä sijainnista.
Toisin sanoen, kun tuet breakpointin jatkamista, voit aloittaa lataamisen mistä tahansa tiedoston osasta, kun taas normaali tapa lataa vain tiedoston otsikosta.
Jotta palvelin tukisi breakpointin jatkamista, seuraavat ongelmat on ratkaistava:

1。 Jos kyseessä on jatkamispyyntö, sinun täytyy hankkia asiakkaan vaatima tiedostoalue.
Kuten yllä olevasta analyysistä näet, kun asiakas lähettää katkopistettä, Range-kenttä lisätään pakettiotsikkoon, ja voit määrittää, onko kyseessä breakpoint-lähetyspyyntö seuraavasti.
merkkijonoalue = pyyntö. Otsikot["Range"];
bool isResume = merkkijono. IsNullOrEmpty (alue);

2。 Vastaa oikein asiakkaalle, jotta asiakaspalvelin voi ilmoittaa, että päätepiste on tuettu jatkamiseen
Kun lähetetään pyyntö katkaisupisteestä, vastaava numero asiakkaalle voidaan asettaa seuraavasti:
Vastaus. Statuskoodi = 206;

3。 Toimita oikeaa sisältöä, jota asiakas tarvitsee
Asiakkaan tarvitseman oikean sisällön toimittaminen sisältää yleensä seuraavat vaiheet
Hanki asiakkaan tiedostopyyntöalue analysoimalla alue.
Kun breakpoint lähetetään, vaadittu pituus on lyhyempi kuin tiedoston pituus, joten oikea vastaus täytyy asettaa. ContentLength64-ominaisuus.
Siirrä tarvittava sisältö oikein
Koodiesimerkki:






Edellinen:httplistener kuuntelee saadakseen POST-pyyntöparametrit
Seuraava:18 filosofista sarjakuvaa, joista kaikki ovat mestareita
Julkaistu 27.11.2019 13.14.14 |
Mark
Julkaistu 30.11.2019 12.04.39 |
merkitty      
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com