WebClient下载文件出错:对象引用未设置为对象的实例

时间:2012-04-24 09:56:16

标签: c# asp.net webclient

WebClient ws = new WebClient();
ws.Credentials = new System.Net.NetworkCredential(username, password, domain);
 ws.DownloadFile("https://xxxx.xxxx.com/xxxx.xml", @"C:\Windows\TEMP\Downloaded.xml");

我收到错误'对象引用没有设置为对象的实例'。 谁知道为什么?

如果我将“https://xxxx.xxxx.com/xxxx.xml”复制到浏览器,它可以下载并保存到“C:\ Windows \ TEMP \ Downloaded.xml”,但我的程序不能,只抛出错误。

以前我使用相同的代码成功下载文件,但那是另一个带有'http'的网站。不确定是否是问题的原因。

1 个答案:

答案 0 :(得分:1)

使用WebClient类时我遇到同样的问题。我所做的是构建一个URI而不是像这样的字符串路径(我在这里没有这样做,但你也可以在UriBuilder中添加用户名和密码):

var uriBuild = new UriBuilder { Host host, Path = downloadPath };
client.DownloadFileAsync(uriBuild.Uri, localPath);

主机和下载路径是分开的,例如:

string host = "ftp.sunet.se"
string downloadPath = "/pub/unix/databases/relational/mysql/Downloads/MySQL-5.5/mysql-5.5.22-win32.msi"

让我知道这是否也适合你! 干杯:)