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

Комментарии

Предостережение

WebRequest, HttpWebRequest, ServicePointи устарели, и WebClient вы не должны использовать их для новой разработки. Вместо этого используйте HttpClient.

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

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

Note

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

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

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

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

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

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

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

AllowAutoRedirect имеет значение true в WebClient экземплярах.

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

Производные классы должны вызывать реализацию 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, Object)

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

DownloadDataAsync(Uri)

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

DownloadDataTaskAsync(String)

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

DownloadDataTaskAsync(Uri)

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

DownloadFile(String, String)

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

DownloadFile(Uri, String)

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

DownloadFileAsync(Uri, String, Object)

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

DownloadFileAsync(Uri, String)

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

DownloadFileTaskAsync(String, String)

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

DownloadFileTaskAsync(Uri, String)

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

DownloadString(String)

Загружает запрошенный Stringресурс в виде . Ресурс для скачивания указывается как содержащий универсальный String код ресурса (URI).

DownloadString(Uri)

Загружает запрошенный Stringресурс в виде . Ресурс, который нужно скачать, указывается в виде Uri.

DownloadStringAsync(Uri, Object)

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

DownloadStringAsync(Uri)

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

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, IAsyncResult)

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

GetWebResponse(WebRequest)

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

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, Object)

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

OpenReadAsync(Uri)

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

OpenReadTaskAsync(String)

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

OpenReadTaskAsync(Uri)

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

OpenWrite(String, String)

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

OpenWrite(String)

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

OpenWrite(Uri, String)

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

OpenWrite(Uri)

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

OpenWriteAsync(Uri, String, Object)

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

OpenWriteAsync(Uri, String)

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

OpenWriteAsync(Uri)

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

OpenWriteTaskAsync(String, String)

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

OpenWriteTaskAsync(String)

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

OpenWriteTaskAsync(Uri, String)

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

OpenWriteTaskAsync(Uri)

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

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[], Object)

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

UploadDataAsync(Uri, String, Byte[])

Отправляет буфер данных в ресурс, определенный 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, String)

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

UploadFile(String, String)

Отправляет указанный локальный файл в ресурс с указанным универсальным кодом ресурса (URI).

UploadFile(Uri, String, String)

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

UploadFile(Uri, String)

Отправляет указанный локальный файл в ресурс с указанным универсальным кодом ресурса (URI).

UploadFileAsync(Uri, String, String, Object)

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

UploadFileAsync(Uri, String, String)

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

UploadFileAsync(Uri, String)

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

UploadFileTaskAsync(String, String, String)

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

UploadFileTaskAsync(String, String)

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

UploadFileTaskAsync(Uri, String, String)

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

UploadFileTaskAsync(Uri, String)

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

UploadString(String, String, String)

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

UploadString(String, String)

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

UploadString(Uri, String, String)

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

UploadString(Uri, String)

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

UploadStringAsync(Uri, String, String, Object)

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

UploadStringAsync(Uri, String, String)

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

UploadStringAsync(Uri, String)

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

UploadStringTaskAsync(String, String, String)

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

UploadStringTaskAsync(String, String)

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

UploadStringTaskAsync(Uri, String, String)

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

UploadStringTaskAsync(Uri, 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, Object)

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

UploadValuesAsync(Uri, String, NameValueCollection)

Отправляет данные в указанной коллекции имен и значений в ресурс, определенный указанным универсальным кодом ресурса (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
Устаревшие..

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

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

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