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.
Заметка
По умолчанию платформа .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. Например, чтобы сохранить запросы в ответе, необходимо добавить заголовок агента пользователя. Кроме того, серверы могут возвращать 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 |
Возвращает или задает ISiteComponent. (Унаследовано от 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 |
Устаревшие..
Происходит при закрытии асинхронной операции записи данных в ресурс с помощью потока записи. |