2016-04-16 5 views
0

Ich versuche, die Pause/Fortsetzen-Funktion meines Download-Dienstprogramms hinzuzufügen, und es scheint, dass die HttpWebRequest.Addrange() -Methode nicht korrekt funktioniert. Ich habe versucht, es zu verwenden, um einen Download fortzusetzen, aber die Webresponse beginnt immer am Anfang der Datei, jedes Mal wenn ich meine App starte.HttpWebRequest Der Download startet immer vom Anfang der Datei an

Unten ist mein Code:

var request = (HttpWebRequest)HttpWebRequest.Create(url); 
    request.AddRange((int)iExistLen); 
    var downloadStream = request.GetResponse().GetResponseStream(); 
    for (int byteSize = 0; (byteSize = fileProvider.Read()) > 0;) 
      { 
       downloadStream.Read(buffer, 0, buffer.Length); 
      }; 

Unter meiner Download-URL ist: https://mathinew.blob.core.windows.net/sharedfolder/testfile006.txt

Bitte lassen Sie mich wissen, wenn jemand das ähnliche Problem konfrontiert, oder alles, was ich bin hier falsch

+0

Hallo, sind Sie sicher, dass Ihr Server diese Funktion unterstützt? Nicht jeder Server unterstützt es. – BHuelse

+0

Azure-Unterstützung Bereichskopf, aber nicht standardmäßig. Siehe diesen Thread http://stackoverflow.com/questions/17408927/do-http-range-headers-work-with-azure-blob-storage-shared-access-signatures – Kalten

Antwort

1
tun

Von der URL kann ich sehen, dass Sie Azure Blob Storage verwenden.

standardmäßig es nicht respektiert Range Header und Sie müssen die Version 2011-08-18 oder höher setzen, damit es funktioniert, die x-ms-version Header verwenden, zum Beispiel:

request.Headers["x-ms-version"] = "2011-08-18"; 

können Sie Legen Sie die Version auch global fest, damit Bereichsheader standardmäßig funktionieren. Weitere Informationen finden Sie unter this question und this MSDN page.

+0

danke @argaz, es funktioniert gut, aber ist das Header ist nur für Azure-Blob oder allgemein für alle URL-Typen anwendbar, da mein Client-Tool nicht weiß, dass die URL für IIS/Azure Blob/etc ist. Ich möchte den Code für alle URL-Typen, Vorschläge oder mehr schreiben Header muss ich einstellen? – Mathiyazhagan

+0

x-ms-version ist spezifisch für Azure-Blob, auf den meisten anderen Servern sollte der Range-Header funktionieren, es sei denn, der Server unterstützt ihn überhaupt nicht. – argaz

Verwandte Themen