WebClient Класс

Определение

Предоставляет общие методы обмена данными с ресурсом, заданным URI.

public ref class WebClient : System::ComponentModel::Component
public ref class WebClient sealed : System::ComponentModel::Component
public class WebClient : System.ComponentModel.Component
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class WebClient : System.ComponentModel.Component
[System.Runtime.InteropServices.ComVisible(true)]
public class WebClient : System.ComponentModel.Component
type WebClient = class
    inherit Component
[<System.Runtime.InteropServices.ComVisible(true)>]
type WebClient = class
    inherit Component
Public Class WebClient
Inherits Component
Public NotInheritable Class WebClient
Inherits Component
Наследование
Атрибуты

Примеры

В следующем примере кода извлекается универсальный код ресурса (URI), извлекается и отображается ответ.

#using <System.dll>

using namespace System;
using namespace System::Net;
using namespace System::IO;
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   if ( args == nullptr || args->Length == 1 )
   {
      throw gcnew ApplicationException( "Specify the URI of the resource to retrieve." );
   }

   WebClient^ client = gcnew 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[ 1 ] );
   StreamReader^ reader = gcnew StreamReader( data );
   String^ s = reader->ReadToEnd();
   Console::WriteLine( s );
   data->Close();
   reader->Close();
   delete client;
}

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.");
        }
        using 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;)");

        using Stream data = client.OpenRead(args[0]);
        using StreamReader reader = new StreamReader(data);
        string s = reader.ReadToEnd();
        Console.WriteLine(s);
    }
}
Imports System.Net
Imports System.IO



Public Class Test
    
    Public Shared Sub Main(args() As String)
        If args Is Nothing OrElse args.Length = 0 Then
            Throw New ApplicationException("Specify the URI of the resource to retrieve.")
        End If
        Using client As 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;)")
            
            Using data As Stream = client.OpenRead(args(0))
                Using reader As New StreamReader(data)
                    Dim s As String = reader.ReadToEnd()
                    Console.WriteLine(s)
                End Using
            End Using
        End Using
    End Sub
End Class

Комментарии

Важно!

Не рекомендуется использовать класс для разработки WebClient новых приложений. Вместо этого используйте System.Net.Http.HttpClient класс .

Класс предоставляет распространенные WebClient методы для отправки данных в любой локальный ресурс, интрасети или интернет-ресурс, определенный URI, или получение данных из любого локального ресурса, интрасети или Интернета.

Класс WebClient использует класс для предоставления WebRequest доступа к ресурсам. WebClient Экземпляры могут обращаться к данным с любым WebRequest потомком, зарегистрированным с помощью WebRequest.RegisterPrefix метода .

Примечание

По умолчанию платформа .NET Framework поддерживает URI, которые начинаются с http:идентификаторов схем , https:, ftp:и file: .

В следующей таблице описаны методы WebClient отправки данных в ресурс.

Метод Описание
OpenWrite Извлекает объект , используемый Stream для отправки данных в ресурс.
OpenWriteAsync Извлекает объект , используемый Stream для отправки данных в ресурс, не блокируя вызывающий поток.
UploadData Отправляет массив байтов в ресурс и возвращает массив, содержащий любой Byte ответ.
UploadDataAsync Byte Отправляет массив в ресурс, не блокируя вызывающий поток.
UploadFile Отправляет локальный файл в ресурс и возвращает массив, содержащий любой Byte ответ.
UploadFileAsync Отправляет локальный файл в ресурс, не блокируя вызывающий поток.
UploadValues Отправляет в NameValueCollection ресурс и возвращает массив, содержащий любой Byte ответ.
UploadValuesAsync NameValueCollection Отправляет в ресурс и возвращает массив, содержащий любой Byte ответ, не блокируя вызывающий поток.
UploadString String Отправляет в ресурс и возвращает объект , содержащий любой String ответ.
UploadStringAsync Отправляет в String ресурс, не блокируя вызывающий поток.

В следующей таблице описаны методы WebClient загрузки данных из ресурса.

Метод Описание
OpenRead Возвращает данные из ресурса в виде Stream.
OpenReadAsync Возвращает данные из ресурса, не блокируя вызывающий поток.
DownloadData Загружает данные из ресурса и возвращает Byte массив.
DownloadDataAsync Загружает данные из ресурса и возвращает Byte массив, не блокируя вызывающий поток.
DownloadFile Загружает данные из ресурса в локальный файл.
DownloadFileAsync Загружает данные из ресурса в локальный файл, не блокируя вызывающий поток.
DownloadString String Скачивает из ресурса и возвращает String.
DownloadStringAsync Скачивает String из ресурса, не блокируя вызывающий поток.

Метод можно использовать для отмены CancelAsync асинхронных операций.

Экземпляр WebClient не отправляет необязательные заголовки HTTP по умолчанию. Если для запроса требуется дополнительный заголовок, необходимо добавить заголовок в коллекцию Headers . Например, чтобы сохранить запросы в ответе, необходимо добавить заголовок user-agent. Кроме того, серверы могут вернуть значение 500 (внутренняя ошибка сервера), если отсутствует заголовок агента пользователя.

AllowAutoRedirect в экземплярах задано значение trueWebClient .

Примечания для тех, кто наследует этот метод

Производные классы должны вызывать реализацию базового класса , WebClient чтобы убедиться, что производный класс работает должным образом.

Конструкторы

WebClient()
Устаревшие..

Инициализирует новый экземпляр класса WebClient.

Свойства

AllowReadStreamBuffering
Устаревшие..

Получает или задает значение, которое указывает, будет ли выполняться буферизация данных, считываемых с интернет-ресурса для экземпляра WebClient.

AllowWriteStreamBuffering
Устаревшие..

Получает или задает значение, которое указывает, будет ли выполняться буферизация данных, записываемых в интернет-ресурс для экземпляра WebClient.

BaseAddress

Возвращает или задает базовый URI для запросов, выполняемых экземпляром WebClient.

CachePolicy

Возвращает или задает политику кэширования приложения для любых ресурсов, полученных этим экземпляром WebClient с помощью объектов WebRequest.

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие.

(Унаследовано от Component)
Container

Возвращает объект IContainer, который содержит коллекцию Component.

(Унаследовано от Component)
Credentials

Возвращает или задает учетные данные сети, которые передаются на узел и используются для проверки подлинности запроса.

DesignMode

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.

(Унаследовано от Component)
Encoding

Получает или задает Encoding, используемые для отправки и скачивания строк.

Events

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

(Унаследовано от Component)
Headers

Возвращает или задает коллекцию пар "имя-значение" заголовков, связанных с запросом.

IsBusy

Возвращает значение, указывающее, выполняется ли веб-запрос.

Proxy

Возвращает или задает прокси-сервер, используемый этим объектом WebClient.

QueryString

Возвращает или задает коллекцию пар "имя-значение" запросов, связанных с запросом.

ResponseHeaders

Возвращает коллекцию пар "имя-значение" заголовков, связанных с запросом.

Site

Получает или задает ISite объекта Component.

(Унаследовано от Component)
UseDefaultCredentials

Возвращает или задает значение Boolean, которое управляет отправкой учетных данных DefaultCredentials вместе с запросами.

Методы

CancelAsync()

Отменяет асинхронную операцию в очереди.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, занятые модулем Component.

(Унаследовано от Component)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.

(Унаследовано от Component)
DownloadData(String)

Загружает ресурс, как массив Byte из заданного URI.

DownloadData(Uri)

Загружает ресурс, как массив Byte из заданного URI.

DownloadDataAsync(Uri)

Загружает ресурс как массив Byte из URI, указанного как асинхронная операция.

DownloadDataAsync(Uri, Object)

Загружает ресурс как массив Byte из URI, указанного как асинхронная операция.

DownloadDataTaskAsync(String)

Загружает ресурс как массив Byte из URI, указанного как асинхронная операция с помощью объекта задачи.

DownloadDataTaskAsync(Uri)

Загружает ресурс как массив Byte из URI, указанного как асинхронная операция с помощью объекта задачи.

DownloadFile(String, String)

Загружает в локальный файл ресурс с указанным URI.

DownloadFile(Uri, String)

Загружает в локальный файл ресурс с указанным URI.

DownloadFileAsync(Uri, String)

Загружает в локальный файл ресурс с указанным URI. Этот метод не блокирует вызывающий поток.

DownloadFileAsync(Uri, String, Object)

Загружает в локальный файл ресурс с указанным URI. Этот метод не блокирует вызывающий поток.

DownloadFileTaskAsync(String, String)

Загружает указанный ресурс в локальный файл как асинхронная операция с помощью объекта задачи.

DownloadFileTaskAsync(Uri, String)

Загружает указанный ресурс в локальный файл как асинхронная операция с помощью объекта задачи.

DownloadString(String)

Загружает требуемый ресурс как строку String. Ресурс, который требуется загрузить, указан как строка String, содержащая URI.

DownloadString(Uri)

Загружает требуемый ресурс как строку String. Загружаемый ресурс указан как Uri.

DownloadStringAsync(Uri)

Загружает ресурс, указанный как Uri. Этот метод не блокирует вызывающий поток.

DownloadStringAsync(Uri, Object)

Загружает указанную строку в указанный ресурс. Этот метод не блокирует вызывающий поток.

DownloadStringTaskAsync(String)

Загружает ресурс как String из URI, указанного как асинхронная операция с помощью объекта задачи.

DownloadStringTaskAsync(Uri)

Загружает ресурс как String из URI, указанного как асинхронная операция с помощью объекта задачи.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetService(Type)

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.

(Унаследовано от Component)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetWebRequest(Uri)

Возвращает объект WebRequest для заданного ресурса.

GetWebResponse(WebRequest)

Возвращает объект WebResponse для указанного объекта WebRequest.

GetWebResponse(WebRequest, IAsyncResult)

Возвращает ответ WebResponse для указанного запроса WebRequest, используя указанный IAsyncResult.

InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
OnDownloadDataCompleted(DownloadDataCompletedEventArgs)

Вызывает событие DownloadDataCompleted.

OnDownloadFileCompleted(AsyncCompletedEventArgs)

Вызывает событие DownloadFileCompleted.

OnDownloadProgressChanged(DownloadProgressChangedEventArgs)

Вызывает событие DownloadProgressChanged.

OnDownloadStringCompleted(DownloadStringCompletedEventArgs)

Вызывает событие DownloadStringCompleted.

OnOpenReadCompleted(OpenReadCompletedEventArgs)

Вызывает событие OpenReadCompleted.

OnOpenWriteCompleted(OpenWriteCompletedEventArgs)

Вызывает событие OpenWriteCompleted.

OnUploadDataCompleted(UploadDataCompletedEventArgs)

Вызывает событие UploadDataCompleted.

OnUploadFileCompleted(UploadFileCompletedEventArgs)

Вызывает событие UploadFileCompleted.

OnUploadProgressChanged(UploadProgressChangedEventArgs)

Вызывает событие UploadProgressChanged.

OnUploadStringCompleted(UploadStringCompletedEventArgs)

Вызывает событие UploadStringCompleted.

OnUploadValuesCompleted(UploadValuesCompletedEventArgs)

Вызывает событие UploadValuesCompleted.

OnWriteStreamClosed(WriteStreamClosedEventArgs)
Устаревшие..

Вызывает событие WriteStreamClosed.

OpenRead(String)

Открывает читаемый поток для данных, загруженных с ресурса, URI которого был указан как String.

OpenRead(Uri)

Открывает читаемый поток для данных, загруженных с ресурса, URI которого был указан как Uri.

OpenReadAsync(Uri)

Открывает поток, доступный для чтения и содержащий указанный ресурс. Этот метод не блокирует вызывающий поток.

OpenReadAsync(Uri, Object)

Открывает поток, доступный для чтения и содержащий указанный ресурс. Этот метод не блокирует вызывающий поток.

OpenReadTaskAsync(String)

Открывает считываемый поток, содержащий указанный ресурс как асинхронная операция с помощью объекта задачи.

OpenReadTaskAsync(Uri)

Открывает считываемый поток, содержащий указанный ресурс как асинхронная операция с помощью объекта задачи.

OpenWrite(String)

Открывает поток для записи данных в указанный ресурс.

OpenWrite(String, String)

Открывает поток для записи данных в указанный ресурс с помощью указанного метода.

OpenWrite(Uri)

Открывает поток для записи данных в указанный ресурс.

OpenWrite(Uri, String)

Открывает поток для записи данных в указанный ресурс с помощью указанного метода.

OpenWriteAsync(Uri)

Открывает поток для записи данных в указанный ресурс. Этот метод не блокирует вызывающий поток.

OpenWriteAsync(Uri, String)

Открывает поток для записи данных в указанный ресурс. Этот метод не блокирует вызывающий поток.

OpenWriteAsync(Uri, String, Object)

Открывает поток для записи данных в указанный ресурс с помощью указанного метода. Этот метод не блокирует вызывающий поток.

OpenWriteTaskAsync(String)

Открывает поток для записи данных в указанный ресурс как асинхронная операция с помощью объекта задачи.

OpenWriteTaskAsync(String, String)

Открывает поток для записи данных в указанный ресурс как асинхронная операция с помощью объекта задачи.

OpenWriteTaskAsync(Uri)

Открывает поток для записи данных в указанный ресурс как асинхронная операция с помощью объекта задачи.

OpenWriteTaskAsync(Uri, String)

Открывает поток для записи данных в указанный ресурс как асинхронная операция с помощью объекта задачи.

ToString()

Возвращает объект String, содержащий имя Component, если оно есть. Этот метод не следует переопределять.

(Унаследовано от Component)
UploadData(String, Byte[])

Передает буфер данных ресурсу, заданному с помощью URI.

UploadData(String, String, Byte[])

Выгружает буфер данных на указанный ресурс с помощью указанного метода.

UploadData(Uri, Byte[])

Передает буфер данных ресурсу, заданному с помощью URI.

UploadData(Uri, String, Byte[])

Выгружает буфер данных на указанный ресурс с помощью указанного метода.

UploadDataAsync(Uri, Byte[])

Выгружает буфер данных в ресурс, указанный с помощью URI, используя метод POST. Этот метод не блокирует вызывающий поток.

UploadDataAsync(Uri, String, Byte[])

Выгружает буфер данных в ресурс, указанный с помощью URI, используя указанный метод. Этот метод не блокирует вызывающий поток.

UploadDataAsync(Uri, String, Byte[], Object)

Передает буфер данных в ресурс, определенный с помощью URI, используя при этом указанный метод и маркер идентификации.

UploadDataTaskAsync(String, Byte[])

Отправляет буфер данных, содержащий массив Byte на URI, указанного как асинхронная операция с помощью объекта задачи.

UploadDataTaskAsync(String, String, Byte[])

Отправляет буфер данных, содержащий массив Byte на URI, указанного как асинхронная операция с помощью объекта задачи.

UploadDataTaskAsync(Uri, Byte[])

Отправляет буфер данных, содержащий массив Byte на URI, указанного как асинхронная операция с помощью объекта задачи.

UploadDataTaskAsync(Uri, String, Byte[])

Отправляет буфер данных, содержащий массив Byte на URI, указанного как асинхронная операция с помощью объекта задачи.

UploadFile(String, String)

Передает заданный локальный файл ресурсу с заданным URI.

UploadFile(String, String, String)

Выгружает указанный локальный файл на указанный ресурс с помощью указанного метода.

UploadFile(Uri, String)

Передает заданный локальный файл ресурсу с заданным URI.

UploadFile(Uri, String, String)

Выгружает указанный локальный файл на указанный ресурс с помощью указанного метода.

UploadFileAsync(Uri, String)

Выгружает указанный локальный файл на указанный ресурс с помощью метода POST. Этот метод не блокирует вызывающий поток.

UploadFileAsync(Uri, String, String)

Выгружает указанный локальный файл на указанный ресурс с помощью метода POST. Этот метод не блокирует вызывающий поток.

UploadFileAsync(Uri, String, String, Object)

Выгружает указанный локальный файл на указанный ресурс с помощью метода POST. Этот метод не блокирует вызывающий поток.

UploadFileTaskAsync(String, String)

Отправляет указанный локальный файл в ресурс как асинхронная операция с помощью объекта задачи.

UploadFileTaskAsync(String, String, String)

Отправляет указанный локальный файл в ресурс как асинхронная операция с помощью объекта задачи.

UploadFileTaskAsync(Uri, String)

Отправляет указанный локальный файл в ресурс как асинхронная операция с помощью объекта задачи.

UploadFileTaskAsync(Uri, String, String)

Отправляет указанный локальный файл в ресурс как асинхронная операция с помощью объекта задачи.

UploadString(String, String)

Выгружает указанную строку на указанный ресурс с помощью метода POST.

UploadString(String, String, String)

Выгружает указанную строку на указанный ресурс с помощью указанного метода.

UploadString(Uri, String)

Выгружает указанную строку на указанный ресурс с помощью метода POST.

UploadString(Uri, String, String)

Выгружает указанную строку на указанный ресурс с помощью указанного метода.

UploadStringAsync(Uri, String)

Выгружает указанную строку в указанный ресурс. Этот метод не блокирует вызывающий поток.

UploadStringAsync(Uri, String, String)

Выгружает указанную строку в указанный ресурс. Этот метод не блокирует вызывающий поток.

UploadStringAsync(Uri, String, String, Object)

Выгружает указанную строку в указанный ресурс. Этот метод не блокирует вызывающий поток.

UploadStringTaskAsync(String, String)

Выгружает указанную строку в заданный ресурс как асинхронная операция с помощью объекта задачи.

UploadStringTaskAsync(String, String, String)

Выгружает указанную строку в заданный ресурс как асинхронная операция с помощью объекта задачи.

UploadStringTaskAsync(Uri, String)

Выгружает указанную строку в заданный ресурс как асинхронная операция с помощью объекта задачи.

UploadStringTaskAsync(Uri, String, String)

Выгружает указанную строку в заданный ресурс как асинхронная операция с помощью объекта задачи.

UploadValues(String, NameValueCollection)

Передает указанную коллекцию "имя-значение" указанному ресурсу, указанному с помощью URI.

UploadValues(String, String, NameValueCollection)

Передает указанную коллекцию "имя-значение" указанному ресурсу, указанному с помощью URI, используя указанный метод.

UploadValues(Uri, NameValueCollection)

Передает указанную коллекцию "имя-значение" указанному ресурсу, указанному с помощью URI.

UploadValues(Uri, String, NameValueCollection)

Передает указанную коллекцию "имя-значение" указанному ресурсу, указанному с помощью URI, используя указанный метод.

UploadValuesAsync(Uri, NameValueCollection)

Выгружает дату в указанной коллекции "имя-значение" в указанный ресурс, определенному с помощью URI. Этот метод не блокирует вызывающий поток.

UploadValuesAsync(Uri, String, NameValueCollection)

Выгружает дату в указанной коллекции "имя-значение" в указанный ресурс, определенный с помощью URI, используя указанный метод. Этот метод не блокирует вызывающий поток.

UploadValuesAsync(Uri, String, NameValueCollection, Object)

Выгружает дату в указанной коллекции "имя-значение" в указанный ресурс, определенный с помощью URI, используя указанный метод. Этот метод не блокирует вызывающий поток и позволяет вызывающей стороне передать объект в метод, вызванный после завершения операции.

UploadValuesTaskAsync(String, NameValueCollection)

Выгружает указанную коллекцию "имя-значение" в указанный ресурс, определенный с помощью URI, как асинхронная операция с использованием объекта задачи.

UploadValuesTaskAsync(String, String, NameValueCollection)

Выгружает указанную коллекцию "имя-значение" в указанный ресурс, определенный с помощью URI, как асинхронная операция с использованием объекта задачи.

UploadValuesTaskAsync(Uri, NameValueCollection)

Выгружает указанную коллекцию "имя-значение" в указанный ресурс, определенный с помощью URI, как асинхронная операция с использованием объекта задачи.

UploadValuesTaskAsync(Uri, String, NameValueCollection)

Выгружает указанную коллекцию "имя-значение" в указанный ресурс, определенный с помощью URI, как асинхронная операция с использованием объекта задачи.

События

Disposed

Возникает при удалении компонента путем вызова метода Dispose().

(Унаследовано от Component)
DownloadDataCompleted

Происходит после завершения асинхронной операции по загрузке данных.

DownloadFileCompleted

Происходит после завершения асинхронной операции по загрузке файла.

DownloadProgressChanged

Происходит при успешной передаче всех данных или их части посредством асинхронной операции загрузки.

DownloadStringCompleted

Происходит после завершения асинхронной операции по загрузке ресурса.

OpenReadCompleted

Происходит после завершения асинхронной операции по открытию строки, содержащей ресурс.

OpenWriteCompleted

Происходит после завершения асинхронной операции по записи данных в ресурс.

UploadDataCompleted

Происходит после завершения асинхронной операции по выгрузке данных.

UploadFileCompleted

Происходит после завершения асинхронной операции по выгрузке файла.

UploadProgressChanged

Происходит при успешной передаче всех данных или их части посредством асинхронной операции выгрузки.

UploadStringCompleted

Происходит после завершения асинхронной операции по выгрузке строки.

UploadValuesCompleted

Происходит после завершения асинхронной операции по выгрузке коллекции "имя-значение".

WriteStreamClosed
Устаревшие..

Происходит после закрытия асинхронной операции по записи данных в ресурс с использованием потока записи.

Применяется к

См. также раздел