📅  最后修改于: 2023-12-03 15:35:40.234000             🧑  作者: Mango
WebClient是.NET Framework提供的一个用于访问Web资源的类。该类允许你以编程方式访问Web资源,如下载文件和上传数据。 你可以使用该类来编写自动化测试脚本、爬虫和其他Web scraping应用程序。
使用WebClient的第一步是创建一个WebClient实例。下面是创建方式的示例代码:
var webClient = new WebClient();
一旦你有了一个WebClient实例,你可以使用其中的方法来访问Web资源,如下:
var url = "https://www.google.com";
var html = webClient.DownloadString(url);
上述代码会下载给定URL的HTML,并将其作为字符串返回。DownloadString方法会阻塞线程,直到下载完成。如果你想异步下载内容,你可以使用DownloadStringAsync方法。
以下是异步下载内容的示例代码:
var url = "https://www.google.com";
webClient.DownloadStringCompleted += (sender, args) =>
{
if (args.Error != null)
{
throw args.Error;
}
var html = args.Result;
// 处理HTML内容
};
webClient.DownloadStringAsync(new Uri(url));
在这个例子中,我们将展示如何使用WebClient下载图片并保存到本地目录中。
using System.IO;
using System.Net;
public static void DownloadImage(string imageUrl, string savePath)
{
using (var webClient = new WebClient())
{
var imageData = webClient.DownloadData(imageUrl);
using (var imageStream = new MemoryStream(imageData))
{
using (var fileStream = new FileStream(savePath, FileMode.Create))
{
imageStream.CopyTo(fileStream);
}
}
}
}
以上代码创建了一个WebClient实例,并使用DownloadData方法下载给定URL的图像数据。接下来,它使用MemoryStream将图像数据保存到内存中,然后使用FileStream将图像数据写入到指定路径的文件中。
WebClient是一个有用且简单的API,可用于实现简单的Web资源访问和抓取任务。除了DownloadString以外,WebClient类还提供了很多其他方法,例如DownloadData、DownloadFile等。无论你需要从Web获取HTML、图像,还是上传数据,WebClient都是值得一试的类。