HTTP下载文件问题
我用Http去下载服务器上的mp3,代码大致如下:
现在的问题是,如果在下载过程中打断下载(Stop为true)就会跑respStreamIm.Close(),但是respStreamIm.Close()的时候时间很长很长,而且一次请求的数据越多,Close的时候需要的时间就越长!!!!!
已经确定在Close之前还是会下载完所有的数据,之后才能继续运行!很不明白.net cf为什么要这样做~~~望高人指点如何解决此问题,谢谢~~~
如果打断当前下载再去下载另一个时,会等待很长时间。而多线程去下载也不行,前面的没有关闭的话,后面的下载会超时~~~
private bool DownloadMp3(string url, long start, long end, string path)
{
HttpWebRequest httpRequestIm;
HttpWebResponse httpResponseIm;
Stream respStreamIm;
httpRequestIm = (HttpWebRequest)WebRequest.Create(url);
httpRequestIm.Method = "GET";
httpRequestIm.AddRange((int)start, (int)end);
try
{
httpResponseIm = (HttpWebResponse)httpRequestIm.GetResponse();
if (httpResponseIm.StatusCode == HttpStatusCode.OK || httpResponseIm.StatusCode == HttpStatusCode.PartialContent)
{
respStreamIm = httpResponseIm.GetResponseStream();
long length = httpResponseIm.ContentLength;
byte[] b = new byte[Convert.ToInt32(length)];
int nReadSize = 0;
nReadSize = respStreamIm.Read(b, 0, Convert.ToInt32(length));
while (nReadSize > 0)
{
if(Stop)
return false;
//写文件
}
}
}
catch{}
finally
{
if (respStreamIm != null)
{
respStreamIm.Close();//中途停止下载的话,这句时间很长很长
respStreamIm = null;
}
if (httpResponseIm != null)
{
httpResponseIm.Close();
httpResponseIm = null;
}
if (httpRequestIm != null)
{
httpRequestIm.Abort();
httpRequestIm = null;
}
if (ms != null)
{
ms.Close();
ms = null;
}
}
}
现在的问题是,如果在下载过程中打断下载(Stop为true)就会跑respStreamIm.Close(),但是respStreamIm.Close()的时候时间很长很长,而且一次请求的数据越多,Close的时候需要的时间就越长!!!!!
已经确定在Close之前还是会下载完所有的数据,之后才能继续运行!很不明白.net cf为什么要这样做~~~望高人指点如何解决此问题,谢谢~~~
如果打断当前下载再去下载另一个时,会等待很长时间。而多线程去下载也不行,前面的没有关闭的话,后面的下载会超时~~~
...全文
相关推荐
华为U1310 HTTP下载写文件问题
http.openInputStream().available(),华为机U1310永远为1,其他机型为实际值 解决:先建立Buff,读取数据
文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf
文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf
API实现http下载
API实现http下载
Java Web文件下载,解决了使用IE11下载文件时所出现的乱码问题
本工程用于研究Java Web文件下载 本工程编码方式:UTF-8 说明:本工程下载功能解决了使用IE11下载文件时所出现的乱码问题
Android之解决PC端上传http表单格式文件手机解析文件名乱码问题和PC浏览器下载文件的文件名显示乱码问题
1 问题 问题1、 手机写socket作为服务器,PC浏览器上传http表单格式文件,然后手机端解析携带中文的文件名我解析是乱码。 问题2、 手机写了socket作为服务器,PC浏览器下载文件,但是浏览器里面的文件名有中文的时候会有乱码。 2 分析 问题1分析 User-Agent: PostmanRuntime/7.26.1 Accept: */* Cache-Control: no-cache ...


