GetResponseStream
От: sashok2k  
Дата: 27.06.07 00:46
Оценка:
Возникает следующая проблема: Создаю Веб запрос к серверу Apache, в процессе получения данных файла с этого сервера передача прекращается примерно на половине загруженного. То что Сервер с которого беру данные работает правильно я уверен.
В чём может быть проблема.

Я делаю следующим образом:



private HttpWebRequest GetRequest(string m_url)
    {
        Response.Expires = 0;

        HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(m_url);
        wr.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);

        return wr;
    }

private int ReadPart(string url,int from, int to, StreamWriter sw)
    {
        HttpWebRequest r = GetRequest(url);
        r.AllowAutoRedirect = true;
        r.Method = "GET";
        r.KeepAlive = true;
        r.AddRange(from, to);
        HttpWebResponse res = (HttpWebResponse)r.GetResponse();
        Stream data = res.GetResponseStream();
        long ContentLength = res.ContentLength;

        BinaryReader sr = new BinaryReader(data);

        int readed = 0;
        int bufsize = 1024 * 50;
        Char[] read = new Char[bufsize];
        int count = sr.Read(read, 0, bufsize);

        while (count != 0) 
        {
            sw.Write(read, 0, count);
            readed += count;
            count = sr.Read(read, 0, bufsize);            
        }

        sr.Close();
        data.Close();
        res.Close();       

        return readed;
    }



Собствеено закачка фала и сохранение его на диск
        StreamWriter sw = new StreamWriter("Имя файла.");
        int readed=0;
        // ReadPart загружаю файл по частям
        readed += ReadPart(url, readed + 1, to), sw);
        sw.Close();
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.