Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 19401|Odpowiedź: 2

[ASP.NET] ASP.NET użyć HttpListener do wznowienia punktów przerwania plików

[Skopiuj link]
Opublikowano 27.11.2019 10:42:41 | | |
Zasada kontynuacji punktów przerwania jest bardzo prosta, to znaczy, nagłówek zapytania i odpowiedzi HTTP różni się od standardowego pobierania.
Podczas żądania dokumentu na serwerze w normalny sposób, żądanie i otrzymanie przez serwer są następujące:
Nagłówek żądania:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Nagłówek odpowiedzi:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Gdy serwer obsługuje wznowienie punktu przerwania, żądanie i odpowiedź są następujące:
Nagłówek żądania:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Nagłówek odpowiedzi:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Różne części obu wiadomości oznaczone są czerwonymi sekcjami. Można zobaczyć:
Nagłówek Range służy do identyfikacji pożądanej lokalizacji pobierania przez klienta.
Gdy numer odpowiedzi serwera wynosi 200, oznacza to, że pobieranie zaczyna się od nagłówka pliku, a 206 oznacza, że transfer zaczyna się z konkretnego miejsca w pliku.
Innymi słowy, przy wstrzeżeniu do powrotu do punktu przerwania możesz zacząć pobierać z dowolnej części pliku, podczas gdy normalny sposób pozwala pobierać tylko z nagłówka pliku.
Aby serwer wspierał wznowienie punktów przerwania, należy rozwiązać następujące problemy:

1。 Jeśli to wniosek o wznowienie, musisz uzyskać zakres plików wymagany przez klienta.
Jak widać z powyższej analizy, gdy klient przesyła punkt przerwania, pole Zasięg jest dodawane do nagłówka pakietu i można określić, czy jest to żądanie przesłania punktu przerwania w następujący sposób.
zakres ciągu = żądanie. nagłówki["Range"];
bool isResume = string. IsNullOrEmpty(zakres);

2。 Poprawnie odpowiadaj klientowi, aby powiadomić serwer klienta, że endpoint jest obsługiwany do kontynuacji
Podczas wysyłania żądania punktu przerwania odpowiadający mu numer można ustawić następująco:
odpowiedź. StatusCode = 206;

3。 Dostarczaj odpowiednie treści, których klient potrzebuje
Dostarczanie właściwych treści wymaganych przez klienta zazwyczaj obejmuje następujące kroki
Uzyskaj zakres żądań plików klienta, analizując ten zakres.
Gdy punkt przerwania jest wysyłany, wymagana długość jest krótsza niż długość pliku, więc należy ustawić poprawną odpowiedź. Własność ContentLength64.
Poprawnie przenieś wymaganą treść
Przykład kodu:






Poprzedni:httplistener nasłuchuje, aby uzyskać parametry żądania POST
Następny:18 komiksów filozoficznych, z których wszyscy są mistrzami
Opublikowano 27.11.2019 13:14:14 |
mark
Opublikowano 30.11.2019 12:04:39 |
oznaczone      
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com