1
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」のある別のサイトでした。それが問題の原因かどうかわからない。

4

2 に答える 2

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"

これがあなたにも役立つかどうか教えてください!乾杯 :)

于 2012-04-24T10:37:46.177 に答える