Я использую 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 и отображения прогресса загрузки?
Спасибо!