大大好!
基于最新的HttpHelperV1.8, 个人有点小疑问
1. 当我们用HttpHelper下载文件的时候,
会把ResultType设置成ResultType.Byte,
当加载完成后,我们会把result.ResultByte 保存成本地文件。
但根据当前代码,HttpHelper设置好result.ResultByte以后,
仍然会继续设置result.Html = encoding.GetString(ResponseByte);
但其实这个Html已经没有太大的意义了,因为返回内容是文件流。
如果文件流很大,经测试,这条语句还是蛮消耗资源的哦
[C#] 纯文本查看 复制代码 #region Html
if (ResponseByte != null && ResponseByte.Length > 0)
{
//设置编码
SetEncoding(item, result, ResponseByte);
//得到返回的HTML
result.Html = encoding.GetString(ResponseByte);
}
else
{
//没有返回任何Html代码
result.Html = string.Empty;
}
#endregion
所以,我斗胆以为,在文件下载的时候(ResultType.Byte)
不需要再设置result.Html了,在大文件下载场景,会有可观的性能提升。
2.关于网络文件下载进度
现版本,下载文件时候,除非修改HttpHelper这个基础类,否则无法获取下载进度。
我觉得.net2.0的写法,可以更容易的添加下载进度。
最近对下载有点兴趣,想在HttpHelper里添加进度的事件反馈通知。
不知道大大对于下载进度通知这个功能,
有没有什么好的建议?
[C#] 纯文本查看 复制代码 private MemoryStream GetMemoryStream(Stream streamResponse)
{
MemoryStream _stream = new MemoryStream();
int Length = 256;
Byte[] buffer = new Byte[Length];
int bytesRead = streamResponse.Read(buffer, 0, Length);
while (bytesRead > 0)
{
_stream.Write(buffer, 0, bytesRead);
bytesRead = streamResponse.Read(buffer, 0, Length);
}
return _stream;
}
|