问题就出在这个网址,实际上换个有明确后缀名的网址就可以顺利下到文件 WebRequest req = WebRequest.Create(UpdaterUrl);
WebResponse res = req.GetResponse();
string aa = res.ContentType;
if (res.ContentLength > 0)
{
try
{
WebClient wClient = new WebClient();
wClient.DownloadFile(UpdaterUrl, SaveFilePath);
return true;
}
catch (Exception ex)
{
WriteLog.WriteLogIn(ex.Message);
return false;
}
}
else
{
return false;
}
获取长度发现是-1,
比如传入的URL是 http://*******/****/UpdateClient.do?version=1.0
或则 http://*******/****/downfile
实际上这2个网页打开后是XML文件,在网页上直接开启,也可以看到里面的XML内容,
但问题是长度为-1,说明根本就没有获取到流流
如果换一个有明确文件后缀的文件就可以下载了
比如 http://*******/****/downfile.XML 就可以正常下载了
WebResponse res = req.GetResponse();
string aa = res.ContentType;
if (res.ContentLength > 0)
{
try
{
WebClient wClient = new WebClient();
wClient.DownloadFile(UpdaterUrl, SaveFilePath);
return true;
}
catch (Exception ex)
{
WriteLog.WriteLogIn(ex.Message);
return false;
}
}
else
{
return false;
}
获取长度发现是-1,
比如传入的URL是 http://*******/****/UpdateClient.do?version=1.0
或则 http://*******/****/downfile
实际上这2个网页打开后是XML文件,在网页上直接开启,也可以看到里面的XML内容,
但问题是长度为-1,说明根本就没有获取到流流
如果换一个有明确文件后缀的文件就可以下载了
比如 http://*******/****/downfile.XML 就可以正常下载了
用过WebRequest 下载没有?
就是说WebRequest.Create(UpdaterUrl)的时候,
如果传的是一个类似http://*******/****/downfile 无指明后缀名的网址的时候,
在WebResponse res = req.GetResponse()获取流以后
查看流的长度的时候res.ContentLength发现是-1
也就是说实际上没有获取到流但是如果这个网址是http://*******/****/downfile.XML 指明的明确后缀名的时候,就可以顺利下载了
WebClient wClient = new WebClient();
wClient.DownloadFile(UpdaterUrl, SaveFilePath);方法还是可以下载到文件的,但是获取不到文件的头文件,拿不到文件的长度,这样很难判断是否能续传