Загрузка файла WP7 с httpwebrequest и индикацией прогресса - PullRequest
1 голос
/ 11 февраля 2012

Я использую HttpWebRequest для загрузки изображений из приложения Windows Phone 7 на сервер WebDAV. Загрузка не проблема, и все работает. Теперь я хочу добавить индикатор для загрузки файла. Я использую этот код для записи данных в поток:

    protected void WriteRequestStream(IAsyncResult result)
    {

        Stream stream = (Stream)result.AsyncState;
        Stream streamResponse = httpWebRequest.EndGetRequestStream(result);

        byte[] content = new byte[4096];
        long totalBytesRead = 0;
        int bytesRead = 0;
        do
        {
            bytesRead = stream.Read(content, 0, content.Length);
            totalBytesRead += bytesRead;
            streamResponse.Write(content, 0, bytesRead);
            streamResponse.Flush();

            if (progressCallback != null)
            {
                float value = (float)totalBytesRead / stream.Length * 100;
                progressCallback(value);
            }
        } while (bytesRead > 0);
        streamResponse.Close();


        httpWebRequest.BeginGetResponse(new AsyncCallback(requestCallback), null);
    }

Кажется, что данные, которые я пишу в объекте streamResponse, буферизуются перед отправкой на сервер WebDAV. Оттуда progessbar должен быстро и на 100% до окончания загрузки.

Я заметил, что в классе HttpWebRequest нет свойства AllowWriteStreamBuffering. Есть ли какое-либо решение для загрузки файла с HttpWebRequest в WP7 и отображения прогресса загрузки?

Спасибо!

...