当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 使用webClient实现图片同步,异步下载

使用webClient实现图片同步,异步下载

2018年12月25日  | 移动技术网IT编程  | 我要评论

最美初中生,超级保镖在都市,ie3.0鼠标驱动

 

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。 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网