1

WPF アプリケーションを入手したので、ファイルをダウンロードしたいと考えています。

System.Net を使用しています。そして、私は次のコードを持っています:

WebClient ww = new WebClient();
ww.DownloadFileAsync(
    new Uri("http://www.sinvise.net/tester/1.jpg"), 
    AppDomain.CurrentDomain.BaseDirectory + "\\1.jpg");

問題は、ファイルがダウンロードされず、0kb ファイルとして表示され、ダウンロードされないことです。何が問題なのかわかりません。誰か助けてもらえますか?

4

4 に答える 4

7

DownloadFileCompletedイベントをリッスンし、イベントがハンドラーに転送するAsyncCompletedEventArgs.Errorプロパティをチェックするのはどうですか?

    public static void DownLoadFileInBackground(string address)
    {
        WebClient client = new WebClient();
        Uri uri = new Uri(address);
        client.DownloadFileCompleted += (sender,e)=>
                                        {
                                            //inspect e here:
                                            //e.Error
                                        };
        client.DownloadProgressChanged += (sender,e)=>
                                          {
                                              //e.ProgressPercentage
                                          };
        client.DownloadFileAsync(uri, "blabla");
    }
于 2010-03-23T01:09:39.410 に答える
3

一部の Web サイトは、リクエストに特定のヘッダーが含まれていないリクエストをブロックします。特に私が過去に見つけたのは「User-Agent」ヘッダーです。ブラウザーのリクエストからヘッダーをコピーして、WebClient に追加してみてください。

WebClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0)");
于 2010-03-23T01:33:24.730 に答える
0

答えが見つかりました。DownloadFile は何よりも先に DNS をチェックすることを読みました。IP アドレスを使用すると、チェックは行われず、すぐに機能します。

しかし、これについてみんなの助けに感謝します。

于 2010-03-23T01:49:51.763 に答える
0

同じファイルに対して既存の閉じられていない webrequest がある場合、DownloadFileAsyncメソッド (私は話すことができません) が機能しないことを追加したいと思います。DownloadFile少なくともそれは私の経験です。フレームワークまたはサーバーによって許可されていない可能性があります。

于 2011-09-24T20:27:41.910 に答える