使用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。
上一篇: 忍俊不禁的几段尬笑
下一篇: Django2.1简介及安装
推荐阅读
-
vue中使用async、await和promise实现异步API的同步调用
-
vue 使用 async 和 await 实现异步 axios 同步化(实战案例:数据异步校验通过后,再执行保存)
-
微信小程序 ———— 异步请求中使用async/await实现同步请求
-
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
-
html5使用canvas实现图片下载功能的示例代码
-
php中使用gd库实现远程图片下载实例
-
html5使用canvas实现图片下载功能的示例代码
-
php中使用gd库实现下载网页中所有图片
-
php中使用gd库实现远程图片下载实例
-
Python实现使用request模块下载图片demo示例