C# WebClient 类可以用于多种场景,主要用于从网络上下载或上传数据。以下是一些常见的用途:
WebClient wc = new WebClient();
wc.DownloadFile("http://example.com/file.zip", @"C:\path\to\save\file.zip");
UploadFile
方法将本地文件上传到服务器。WebClient wc = new WebClient();
wc.UploadFile("http://example.com/upload", @"C:\path\to\local\file.txt");
DownloadString
或 DownloadData
方法,可以获取指定URL的HTML内容。string url = "http://example.com";
string htmlContent = wc.DownloadString(url);
DownloadString
方法获取JSON或XML格式的数据,并通过 JsonConvert.DeserializeObject<T>
(对于JSON)或 XmlDocument
(对于XML)进行解析。string jsonUrl = "http://example.com/api/data";
string jsonData = wc.DownloadString(jsonUrl);
var data = JsonConvert.DeserializeObject<MyDataType>(jsonData);
WebClient
的 Headers
属性来发送自定义HTTP请求头,例如处理Cookies、身份验证等。WebClient wc = new WebClient();
wc.Headers.Add("Cookie", "key=value");
wc.Headers.Add("Authorization", "Bearer token");
WebClient
的 DownloadStringTaskAsync
和 UploadFileTaskAsync
方法执行异步操作,这在处理大量数据或需要高性能时非常有用。await wc.DownloadStringTaskAsync("http://example.com");
await wc.UploadFileTaskAsync("http://example.com/upload", @"C:\path\to\local\file.txt");
WebClient
的 GetStream
方法获取一个 Stream
对象,以便进行流式传输,这对于处理大文件或实时数据流非常有用。using (Stream stream = wc.GetStream("http://example.com"))
{
// 处理流数据
}
请注意,尽管 WebClient
在许多场景下都很有用,但它不是线程安全的。如果需要在多线程环境中使用,建议使用 HttpClient
类,它提供了更好的性能和更多的功能。