使用webClient實現圖片同步,異步下載

WebClient.DownloadFile 方法

將具有指定 URI 的資源下載到本地文件。

命名空間:System.Net

程序集:System(在 system.dll 中)


同步實現參考代碼:

private void btnsyndownload_Click(object sender, EventArgs e)
{
File.Delete("download.jpg");
try
{
if (!File.Exists("download.jpg"))
{
WebClient client = new WebClient(); client.DownloadFile("https://ss0.baidu.com/Po3dSag_xI4khGko9WTAnF6hhy/image/h%3D300/sign=181318733ad12f2ed105a8607fc0d5ff/94cad1c8a786c9171cc12b9dc53d70cf3ac75757.jpg", "download.jpg");
picpicture.Image = Image.FromFile("download.jpg");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}

    }

WebClient.DownloadFileAsync 方法

將具有指定 URI 的資源下載到本地文件。此方法不會阻止調用線程。

命名空間:System.Net
程序集:System(在 system.dll 中)


異步實現參考代碼:

File.Delete("download.jpg");
try
{
if (!File.Exists("download.jpg"))
{
WebClient client = new WebClient();
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);

client.DownloadFileAsync(newUri("https://ss0.baidu.com/Po3dSag_xI4khGko9WTAnF6hhy/image/h%3D300/sign=181318733ad12f2ed105a8607fc0d5ff/94cad1c8a786c9171cc12b9dc53d70cf3ac75757.jpg"),"download.jpg");

            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
    {           
        picpicture.Image = Image.FromFile("download.jpg"); 
    }

簡單介紹一下WebClient:

WebClient 類提供向 URI 標識的任何本地、Intranet 或 Internet 資源發送數據以及從這些資源接收數據的公共方法。
WebClient 類使用 WebRequest 類提供對資源的訪問。WebClient 實例可以通過任何已向 WebRequest.RegisterPrefix 方法註冊的 WebRequest 子代訪問數據。
注意
默認情況下,.NET Framework 支持以 http:、https:、ftp:、和 file: 方案標識符開頭的 URI。 

下面描述用於將數據上載到資源的 WebClient 方法: 
OpenWrite  檢索一個用於將數據發送到資源的 Stream。
OpenWriteAsync  檢索 Stream,它在不阻止調用線程的情況下將數據發送到資源。
UploadData  將字節數組發送到資源,並返回包含任何響應的 Byte 數組。
UploadDataAsync  在不阻止調用線程的情況下,將 Byte 數組發送到資源。
UploadFile  將本地文件發送到資源,並返回包含任何響應的 Byte 數組。
UploadFileAsync  在不阻止調用線程的情況下,將本地文件發送到資源。
UploadValues  將 NameValueCollection 發送到資源,並返回包含任何響應的 Byte 數組。
UploadValuesAsync  在不阻止調用線程的情況下,將 NameValueCollection 發送到資源,並返回包含任何響應的 Byte 數組。
UploadString  在不阻止調用線程的情況下,將 String 發送到資源。
UploadStringAsync  在不阻止調用線程的情況下,將 String 發送到資源。 

下面描述從資源下載數據的 WebClient 方法: 
OpenRead  從資源以 Stream 的形式返回數據。
OpenReadAsync  在不阻止調用線程的情況下,從資源返回數據。
DownloadData 從資源下載數據並返回 Byte 數組。
DownloadDataAsync  在不阻止調用線程的情況下,從資源下載數據並返回 Byte 數組。
DownloadFile  從資源將數據下載到本地文件。
DownloadFileAsync  在不阻止調用線程的情況下,將數據從資源下載到本地文件。
DownloadString  從資源下載 String 並返回 String。
DownloadStringAsync  在不阻止調用線程的情況下,從資源下載 String。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章