HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//byte[] byteArr = webClient.DownloadData(url);
//string contentEncoding = webClient.ResponseHeaders["Content-Encoding"];
if (response.ContentEncoding == "gzip")
{
//Stream stream = new MemoryStream(byteArr);
Stream stream = response.GetResponseStream();
using (Stream zipStream = new GZipStream(stream, CompressionMode.Decompress))
{
using (Stream fileStream = new FileStream(address, FileMode.Create))
{
byte[] read = new byte[1024];
int readlen = zipStream.Read(read, 0, read.Length);
while (readlen > 0)
{
fileStream.Write(read, 0, read.Length);
readlen = zipStream.Read(read, 0, read.Length);
}
//fileStream.Close();
//zipStream.Close();
//stream.Close();
}
}
stream.Close();
}
else
{
webClient.DownloadFile(new Uri(url), address);
//Stream stream = new MemoryStream(byteArr);
//Stream stream = response.GetResponseStream();
//stream.ReadTimeout = -1;
//using (FileStream fileStream = new FileStream(address, FileMode.Create))
//{
// byte[] read = new byte[1024];
// int readlen = stream.Read(read, 0, read.Length);
// while (readlen > 0)
// {
// fileStream.Write(read, 0, read.Length);
// readlen = stream.Read(read, 0, read.Length);
// }
// //fileStream.Close();
//}
//stream.Close();
}
已解决。代码错误。
可以尝试多线程下载 然后合并
中断的部分可以考虑断点续传