我正在使用最新版本的Xamarin Android并在Nexus 5上进行测试。我正在创建一个HttpWebRequest来下载视频,但我很难及早完成并且没有完全下载该文件。
我的代码的重要部分如下:
var webRequest = (HttpWebRequest) WebRequest.Create(url);
using (var response = webRequest.GetResponse())
{
long totalBytes = 0;
using (var responseStream = response.GetResponseStream())
{
using (var dest = new FileStream(realPath, FileMode.CreateNew, FileAccess.Write))
{
int currentBlockSize;
while ((currentBlockSize = responseStream.Read(buffer, 0, buffer.Length)) > 0)
{
totalBytes += currentBlockSize;
var percentage = (int) (totalBytes*100.0/totalSize);
dest.Write(buffer, 0, currentBlockSize);
if (progress != null)
progress(percentage, totalBytes, totalSize);
if (cancel)
{
didCancel = true;
break;
}
}
}
}
}
大约三分之一,虽然我不会得到基于我的响应头的我期望的完整字节。在文件下载之前,responseStream.Read()将返回0路。