Verwendung von WebResponse zum Herunterladen von WMV-Dateien
Ich verwende den folgenden Code, um eine WMV-Datei über eine WebResponse abzufragen. Ich benutze einen Thread, um diese Funktion aufzurufen:
static void GetPage(object data)
{
// Cast the object to a ThreadInfo
ThreadInfo ti = (ThreadInfo)data;
// Request the URL
WebResponse wr = WebRequest.Create(ti.url).GetResponse();
// Display the value for the Content-Length header
Console.WriteLine(ti.url + ": " + wr.Headers["Content-Length"]);
string toBeSaved = @"C:\Users\Kevin\Downloads\TempFiles" + wr.ResponseUri.PathAndQuery;
StreamWriter streamWriter = new StreamWriter(toBeSaved);
MemoryStream m = new MemoryStream();
Stream receiveStream = wr.GetResponseStream();
using (StreamReader sr = new StreamReader(receiveStream))
{
while (sr.Peek() >= 0)
{
m.WriteByte((byte)sr.Read());
}
streamWriter.Write(sr.ReadToEnd());
sr.Close();
wr.Close();
}
streamWriter.Flush();
streamWriter.Close();
// streamReader.Close();
// Let the parent thread know the process is done
ti.are.Set();
wr.Close();
}
Die Datei wird anscheinend einwandfrei heruntergeladen, aber Windows Media Viewer kann die Datei nicht ordnungsgemäß öffnen. Ein alberner Fehler, weil der Dateityp nicht unterstützt wird.
Was für eine unglaublich einfache Sache vermisse ich?