Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 19401|Yanıt: 2

[ASP.NET] ASP.NET dosya kesme noktalarını sürdürmek için HttpListener kullanın

[Bağlantıyı kopyala]
Yayınlandı 27.11.2019 10:42:41 | | |
Breakpoint devamının prensibi çok basittir; yani HTTP isteği ve yanıt mesajının başlığı normal indirmeden farklıdır.
Bir sunucuda normal şekilde bir belge talep edilirken, yapılan talep ve alınan sunucu aşağıdaki gibidir:
İstek Başlığı:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Yanıt başlığı:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

Sunucu breakpoint yeniden başlatmayı desteklediğinde, istek ve yanıt aşağıdaki gibidir:
İstek Başlığı:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Yanıt başlığı:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

İki mesajın farklı kısımları kırmızı bölümlerle işaretlenmiştir. Şunlar görülebilir:
Aralık başlığı, müşterinin istediği indirme konumunu belirlemek için kullanılır.
Sunucunun cevap numarası 200 ise, indirmenin dosya başlığından başladığı anlamına gelir ve 206 ise transferin dosyanın belirli bir konumundan başladığı anlamına gelir.
Yani, breakpoint yeniden başlatmayı desteklerken, dosyanın herhangi bir bölümünden indirmeye başlayabilirsiniz, oysa normal yöntem sadece dosya başlığından indirebilir.
Sunucunun breakpoint yeniden başlatmayı desteklemesi için aşağıdaki sorunların çözülmesi gerekir:

1。 Eğer bu bir devam talebiyse, istemcinin ihtiyaç duyduğu dosya aralığını almanız gerekir.
Yukarıdaki analizden görebileceğiniz gibi, istemci bir kesme noktası iletirken, Aralık alanı paket başlığına eklenir ve bunun bir kesme noktası iletim talebi olup olmadığını aşağıdaki gibi belirleyebilirsiniz.
Dizi aralığı = istek. Başlıklar["Range"];
bool isResume = dize. IsNullOrEmpty(menzil);

2。 İstemciye doğru yanıt vererek istemci sunucusuna uç noktanın devamını desteklediğini bildirin
Bir kesme noktası için bir talep gönderilirken, istemci için karşılık gelen sayı şu şekilde ayarlanabilir:
Yanıt. Durum Kodu = 206;

3。 Müşterinin ihtiyaç duyduğu doğru içeriği sunmak
Müşterinin ihtiyaç duyduğu doğru içeriği sunmak genellikle aşağıdaki adımları içerir
İstemcinin dosya isteği aralığını analiz ederek elde edin.
Bir kesme noktası gönderildiğinde, gerekli uzunluk dosyanın uzunluğundan daha kısadır, bu yüzden doğru yanıt ayarlanmalıdır. ContentLength64 mülkiyeti.
Gerekli içeriği doğru şekilde aktarın
Kod örneği:






Önceki:httplistener, POST isteği parametrelerini almak için dinler
Önümüzdeki:18 felsefi çizgi roman, hepsi ustadır
Yayınlandı 27.11.2019 13:14:14 |
Mark
Yayınlandı 30.11.2019 12:04:39 |
İşaretlenmiştir      
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com