要查看英语原文,请勾选“英语”复选框。也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语
本文档已存档,并且将不进行维护。

WebClient 类

提供用于将数据发送到由 URI 标识的资源及从这样的资源接收数据的常用方法。

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

[ComVisibleAttribute(true)]
public class WebClient : Component

WebClient 类型公开以下成员。

  名称说明
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifWebClient初始化 WebClient 类的新实例。
页首

  名称说明
公共属性tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifBaseAddress获取或设置 WebClient 发出请求的基 URI。
公共属性CachePolicy对于此 WebClient 实例使用 WebRequest 对象获得的任何资源,获取或设置应用程序的缓存策略。
受保护的属性CanRaiseEvents获取一个指示组件是否可以引发事件的值。 (继承自 Component。)
公共属性Container获取 IContainer,它包含 Component (继承自 Component。)
公共属性tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifCredentials获取或设置发送到主机并用于对请求进行身份验证的网络凭据。
受保护的属性DesignMode获取一个值,用以指示 Component 当前是否处于设计模式。 (继承自 Component。)
公共属性tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifEncoding获取和设置用于上载和下载字符串的 Encoding
受保护的属性Events获取附加到此 Component 的事件处理程序的列表。 (继承自 Component。)
公共属性tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifHeaders获取或设置与请求关联的标头名称/值对集合。
公共属性tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifIsBusy了解是否存在进行中的 Web 请求。
公共属性Proxy获取或设置此 WebClient 对象使用的代理。
公共属性QueryString获取或设置与请求关联的查询名称/值对集合。
公共属性tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifResponseHeaders获取与响应关联的标头名称/值对集合。
公共属性Site获取或设置 ComponentISite (继承自 Component。)
公共属性tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifUseDefaultCredentials获取或设置 Boolean 值,该值控制 DefaultCredentials 是否随请求一起发送。
页首

  名称说明
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifCancelAsync取消一个挂起的异步操作。
公共方法CreateObjRef创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。)
公共方法Dispose()释放由 Component 使用的所有资源。 (继承自 Component。)
受保护的方法Dispose(Boolean)释放 Component 占用的非托管资源,也可以选择释放托管资源。 (继承自 Component。)
公共方法DownloadData(String)Byte 数组形式通过指定的 URI 下载资源。
公共方法DownloadData(Uri)Byte 数组形式通过指定的 URI 下载资源。
公共方法DownloadDataAsync(Uri)Byte 数组形式下载指定的资源。 此方法不会阻止调用线程。
公共方法DownloadDataAsync(Uri, Object)Byte 数组形式下载指定的资源。 此方法不会阻止调用线程。
公共方法DownloadFile(String, String)将具有指定 URI 的资源下载到本地文件。
公共方法DownloadFile(Uri, String)将具有指定 URI 的资源下载到本地文件。
公共方法DownloadFileAsync(Uri, String)将具有指定 URI 的资源下载到本地文件。 此方法不会阻止调用线程。
公共方法DownloadFileAsync(Uri, String, Object)将具有指定 URI 的资源下载到本地文件。 此方法不会阻止调用线程。
公共方法DownloadString(String)String 形式下载请求的资源。 以包含 URI 的 String 的形式指定要下载的资源。
公共方法DownloadString(Uri)String 形式下载请求的资源。 Uri 形式指定要下载的资源。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifDownloadStringAsync(Uri)下载以 Uri 形式指定的资源。 此方法不会阻止调用线程。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifDownloadStringAsync(Uri, Object)将指定的字符串下载到指定的资源。 此方法不会阻止调用线程。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifEquals(Object)确定指定的 Object 是否等于当前的 Object (继承自 Object。)
受保护的方法Finalize在通过垃圾回收将 Component 回收之前,释放非托管资源并执行其他清理操作。 (继承自 Component。)
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifGetHashCode用作特定类型的哈希函数。 (继承自 Object。)
公共方法GetLifetimeService检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。)
受保护的方法GetService返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。 (继承自 Component。)
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifGetType获取当前实例的 Type (继承自 Object。)
受保护的方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifGetWebRequest为指定资源返回一个 WebRequest 对象。
受保护的方法GetWebResponse(WebRequest)返回对指定 WebRequestWebResponse
受保护的方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifGetWebResponse(WebRequest, IAsyncResult)使用指定的 IAsyncResult 获取对指定 WebRequestWebResponse
公共方法InitializeLifetimeService获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。)
受保护的方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifMemberwiseClone()创建当前 Object 的浅表副本。 (继承自 Object。)
受保护的方法MemberwiseClone(Boolean)创建当前 MarshalByRefObject 对象的浅表副本。 (继承自 MarshalByRefObject。)
受保护的方法OnDownloadDataCompleted引发 DownloadDataCompleted 事件。
受保护的方法OnDownloadFileCompleted引发 DownloadFileCompleted 事件。
受保护的方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOnDownloadProgressChanged引发 DownloadProgressChanged 事件。
受保护的方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOnDownloadStringCompleted引发 DownloadStringCompleted 事件。
受保护的方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOnOpenReadCompleted引发 OpenReadCompleted 事件。
受保护的方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOnOpenWriteCompleted引发 OpenWriteCompleted 事件。
受保护的方法OnUploadDataCompleted引发 UploadDataCompleted 事件。
受保护的方法OnUploadFileCompleted引发 UploadFileCompleted 事件。
受保护的方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOnUploadProgressChanged引发 UploadProgressChanged 事件。
受保护的方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOnUploadStringCompleted引发 UploadStringCompleted 事件。
受保护的方法OnUploadValuesCompleted引发 UploadValuesCompleted 事件。
公共方法OpenRead(String)为从具有 String 指定的 URI 的资源下载的数据打开一个可读的流。
公共方法OpenRead(Uri)为从具有 Uri 指定的 URI 的资源下载的数据打开一个可读的流
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOpenReadAsync(Uri)打开包含指定资源的可读流。 此方法不会阻止调用线程。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOpenReadAsync(Uri, Object)打开包含指定资源的可读流。 此方法不会阻止调用线程。
公共方法OpenWrite(String)打开一个流以将数据写入指定的资源。
公共方法OpenWrite(Uri)打开一个流以将数据写入指定的资源。
公共方法OpenWrite(String, String)打开一个流以使用指定的方法向指定的资源写入数据。
公共方法OpenWrite(Uri, String)打开一个流以使用指定的方法将数据写入指定的资源。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOpenWriteAsync(Uri)打开一个流以将数据写入指定的资源。 此方法不会阻止调用线程。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOpenWriteAsync(Uri, String)打开一个流以将数据写入指定的资源。 此方法不会阻止调用线程。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOpenWriteAsync(Uri, String, Object)打开一个流以使用指定的方法向指定的资源写入数据。 此方法不会阻止调用线程。
公共方法ToString返回包含 Component 的名称的 String(如果有)。 不应重写此方法。 (继承自 Component。)
公共方法UploadData(String, Byte[])将数据缓冲区上载到由 URI 标识的资源。
公共方法UploadData(Uri, Byte[])将数据缓冲区上载到由 URI 标识的资源。
公共方法UploadData(String, String, Byte[])使用指定的方法将数据缓冲区上载到指定资源。
公共方法UploadData(Uri, String, Byte[])使用指定的方法将数据缓冲区上载到指定资源。
公共方法UploadDataAsync(Uri, Byte[])使用 POST 方法将数据缓冲区上载到由 URI 标识的资源。 此方法不会阻止调用线程。
公共方法UploadDataAsync(Uri, String, Byte[])使用指定的方法将数据缓冲区上载到由 URI 标识的资源。 此方法不会阻止调用线程。
公共方法UploadDataAsync(Uri, String, Byte[], Object)使用指定的方法和标识标记将数据缓冲区上载到由 URI 标识的资源。
公共方法UploadFile(String, String)将指定的本地文件上载到具有指定 URI 的资源。
公共方法UploadFile(Uri, String)将指定的本地文件上载到具有指定 URI 的资源。
公共方法UploadFile(String, String, String)使用指定的方法将指定的本地文件上载到指定的资源。
公共方法UploadFile(Uri, String, String)使用指定的方法将指定的本地文件上载到指定的资源。
公共方法UploadFileAsync(Uri, String)使用 POST 方法将指定的本地文件上载到指定的资源。 此方法不会阻止调用线程。
公共方法UploadFileAsync(Uri, String, String)使用 POST 方法将指定的本地文件上载到指定的资源。 此方法不会阻止调用线程。
公共方法UploadFileAsync(Uri, String, String, Object)使用 POST 方法将指定的本地文件上载到指定的资源。 此方法不会阻止调用线程。
公共方法UploadString(String, String)使用 POST 方法将指定的字符串上载到指定的资源。
公共方法UploadString(Uri, String)使用 POST 方法将指定的字符串上载到指定的资源。
公共方法UploadString(String, String, String)使用指定的方法将指定的字符串上载到指定的资源。
公共方法UploadString(Uri, String, String)使用指定的方法将指定的字符串上载到指定的资源。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifUploadStringAsync(Uri, String)将指定的字符串上载到指定的资源。 此方法不会阻止调用线程。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifUploadStringAsync(Uri, String, String)将指定的字符串上载到指定的资源。 此方法不会阻止调用线程。
公共方法tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifUploadStringAsync(Uri, String, String, Object)将指定的字符串上载到指定的资源。 此方法不会阻止调用线程。
公共方法UploadValues(String, NameValueCollection)将指定的名称/值集合上载到指定的 URI 所标识的资源。
公共方法UploadValues(Uri, NameValueCollection)将指定的名称/值集合上载到指定的 URI 所标识的资源。
公共方法UploadValues(String, String, NameValueCollection)使用指定的方法将指定的名称/值集合上载到指定的 URI 所标识的资源。
公共方法UploadValues(Uri, String, NameValueCollection)使用指定的方法将指定的名称/值集合上载到指定的 URI 所标识的资源。
公共方法UploadValuesAsync(Uri, NameValueCollection)将指定的名称/值集合中的数据上载到由指定的 URI 标识的资源。 此方法不会阻止调用线程。
公共方法UploadValuesAsync(Uri, String, NameValueCollection)使用指定的方法将指定的名称/值集合中的数据上载到由指定的 URI 标识的资源。 此方法不会阻止调用线程。
公共方法UploadValuesAsync(Uri, String, NameValueCollection, Object)使用指定的方法将指定的名称/值集合中的数据上载到由指定的 URI 标识的资源。 此方法不会阻止调用线程,并允许调用方将对象传递给操作完成时所调用的方法。
页首

  名称说明
公共事件Disposed当通过调用 Dispose 方法释放组件时发生。 (继承自 Component。)
公共事件DownloadDataCompleted在异步数据下载操作完成时发生。
公共事件DownloadFileCompleted在异步文件下载操作完成时发生。
公共事件tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifDownloadProgressChanged在异步下载操作成功转换部分或全部数据后发生。
公共事件tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifDownloadStringCompleted在异步资源下载操作完成时发生。
公共事件tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOpenReadCompleted在以下异步操作完成时发生,该操作打开包含某个资源的流。
公共事件tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifOpenWriteCompleted在打开流以将数据写入资源的异步操作完成时发生。
公共事件UploadDataCompleted在异步数据上载操作完成时发生。
公共事件UploadFileCompleted在异步文件上载操作完成时发生。
公共事件tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifUploadProgressChanged在异步上载操作成功转换部分或全部数据后发生。
公共事件tt0f69eh.PortableClassLibrary(zh-cn,VS.100).gifUploadStringCompleted在异步字符串上载操作完成时发生。
公共事件UploadValuesCompleted在名称/值集合的异步上载完成时发生。
页首

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

您可以使用 CancelAsync 方法取消尚未完成的异步操作。

默认情况下,WebClient 实例不发送可选的 HTTP 报头。 如果您的请求需要可选报头,必须将该报头添加到 Headers 集合。 例如,要在响应中保留查询,必须添加用户代理报头。 此外,如果用户代理标头丢失,服务器可能返回 500(内部服务器错误)。

WebClient 实例中,AllowAutoRedirect 设置为 true

对继承者的说明

派生类应调用 WebClient 的基类实现,以确保派生类按预期方式工作。

下面的代码示例接受资源的 URI,检索它,然后显示响应。


using System;
using System.Net;
using System.IO;

public class Test
{
    public static void Main (string[] args)
    {
        if (args == null || args.Length == 0)
        {
            throw new ApplicationException ("Specify the URI of the resource to retrieve.");
        }
        WebClient client = new WebClient ();

        // Add a user agent header in case the 
        // requested URI contains a query.

        client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

        Stream data = client.OpenRead (args[0]);
        StreamReader reader = new StreamReader (data);
        string s = reader.ReadToEnd ();
        Console.WriteLine (s);
        data.Close ();
        reader.Close ();
    }
}


.NET Framework

受以下版本支持:4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

受以下版本支持:

  • WebPermission 

    用于访问所请求的 URI 或请求被重定向到的任何 URI。 关联枚举:Connect

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2

.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
显示: