Поделиться через


System.Net.Http Пространство имен

Предоставляет интерфейс программирования для современных приложений HTTP.

Классы

ByteArrayContent

Предоставляет содержимое HTTP на основе массива байтов.

DelegatingHandler

Тип для обработчиков HTTP-данных, которые делегируют обработку ответных сообщений HTTP другому обработчику, который называется внутренним обработчиком.

FormUrlEncodedContent

Контейнер для кортежей " имя-значение ", закодированных с помощью типа MIME application/x-www-form-urlencoded.

HttpClient

Предоставляет класс для отправки HTTP-запросов и получения HTTP-ответов от ресурса, определяемого URI.

HttpClientFactoryExtensions

Методы расширения для IHttpClientFactory.

HttpClientHandler

Обработчик сообщений по умолчанию, используемый HttpClient в .NET Framework и .NET Core 2.0 и более ранней версии.

HttpContent

Базовый класс, представляющий заголовки содержимого и тело сущности HTTP.

HttpDiagnosticsHttpRequestMessageExtensions

Расширения для служебных программ телеметрии.

HttpIOException

Исключение, которое возникает при возникновении ошибки при чтении ответа.

HttpMessageHandler

Базовый тип для обработчиков сообщений HTTP.

HttpMessageHandlerFactoryExtensions

Методы расширения для IHttpMessageHandlerFactory.

HttpMessageInvoker

Специальный класс, который позволяет приложениям вызывать метод SendAsync(HttpRequestMessage, CancellationToken) в цепочке обработчика HTTP.

HttpMethod

Вспомогательный класс для получения и сравнения стандартных методов HTTP и создания новых методов HTTP.

HttpProtocolException

Исключение, возникающее при возникновении ошибки протокола HTTP/2 или HTTP/3.

HttpRequestException

Базовый класс для исключений, вызванных классами HttpClient и HttpMessageHandler.

HttpRequestMessage

Представляет сообщение HTTP-запроса.

HttpRequestOptions

Представляет коллекцию параметров для HTTP-запроса.

HttpResilienceHttpRequestMessageExtensions

Расширения устойчивости для HttpRequestMessage.

HttpResponseMessage

Представляет ответное сообщение HTTP, включая код и данные о состоянии.

MessageProcessingHandler

Базовый тип для обработчиков, которые выполняют определенную небольшую часть обработки запросов и ответных сообщений.

MultipartContent

Предоставляет коллекцию объектов HttpContent, которые сериализуются используя спецификацию типа содержимого multipart/*.

MultipartFormDataContent

Предоставляет контейнер для содержимого, закодированного с помощью типа MIME multipart/form-data.

ReadOnlyMemoryContent

Предоставляет содержимое HTTP на основе ReadOnlyMemory<T>.

RtcRequestFactory

Предоставляет интерфейс программирования для современных приложений HTTP.

SocketsHttpConnectionContext

Представляет контекст, передаваемый в ConnectCallback для экземпляра SocketsHttpHandler. .

SocketsHttpHandler

Предоставляет обработчик сообщений по умолчанию, используемый HttpClient в .NET Core 2.1 и более поздних версиях.

SocketsHttpPlaintextStreamFilterContext

Представляет контекст, переданный в PlaintextStreamFilter для экземпляра SocketsHttpHandler.

StreamContent

Предоставляет содержимое HTTP на основе потока.

StringContent

Предоставляет содержимое HTTP на основе строки.

WebRequestHandler

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

WinHttpHandler

Обрабатывает сообщения на основе интерфейса WinHTTP ОС Windows. Этот класс предназначен для использования в серверных средах.

Структуры

HttpRequestOptionsKey<TValue>

Представляет ключ в коллекции параметров для HTTP-запроса.

Интерфейсы

IHttpClientFactory

Абстракция фабрики для компонента, который может создавать экземпляры HttpClient с пользовательской конфигурацией для заданного логического имени.

IHttpMessageHandlerFactory

Абстракция фабрики для компонента, который может создавать экземпляры HttpMessageHandler с пользовательской конфигурацией для заданного логического имени.

Перечисления

ClientCertificateOption

Определяет способ предоставления клиентских сертификатов.

CookieUsePolicy

Данное перечисление позволяет контролировать файлы cookie HTTP при обмене данными с сервером.

HttpCompletionOption

Указывает, должны ли операции HttpClient считаться завершенными, как только имеется отклик, или после чтения всего сообщения отклика, включая содержимое.

HttpKeepAlivePingPolicy

Указывает, когда следует отправлять кадр проверки связи HTTP/2 при неактивном подключении.

HttpRequestError

Определяет категории ошибок, представляющие причину или HttpRequestExceptionHttpIOException.

HttpVersionPolicy

Позволяет задать варианты поведения для выбора и согласования версии HTTP для запроса.

WindowsProxyUsePolicy

Это перечисление предоставляет доступные параметры для параметров прокси-сервера, используемые HttpClient при работе в Windows.

Делегаты

HeaderEncodingSelector<TContext>

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

Комментарии

Пространство System.Net.Http имен предназначено для предоставления следующих компонентов:

  1. Компоненты клиента HTTP, которые позволяют пользователям использовать современные веб-службы по протоколу HTTP.

  2. Компоненты HTTP, которые могут использоваться как клиентами, так и серверами (например, заголовки и сообщения HTTP). Это обеспечивает согласованную модель программирования как на стороне клиента, так и на стороне сервера для современных веб-служб по протоколу HTTP.

Пространство System.Net.Http имен и связанное System.Net.Http.Headers пространство имен предоставляют следующий набор компонентов:

  1. HttpClient — основной класс, используемый для отправки и получения запросов по протоколу HTTP.

  2. HttpRequestMessage и HttpResponseMessage — http-сообщения, определенные в RFC 2616 IETF.

  3. HttpHeaders — заголовки HTTP, определенные в RFC 2616 IETF.

  4. HttpClientHandler — обработчики HTTP, отвечающие за создание ответных сообщений HTTP.

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

  1. DelegatingHandler — класс, используемый для подключения обработчика к цепочке обработчиков.

  2. HttpMessageHandler — простой класс, производный от , который поддерживает наиболее распространенные требования для большинства приложений.

  3. HttpClientHandler — класс, который работает в нижней части цепочки обработчиков, которая фактически обрабатывает операции транспорта HTTP.

  4. WebRequestHandler — Специализированный класс, работающий в нижней части класса цепочки обработчиков, который обрабатывает операции транспорта HTTP с параметрами, характерными для System.Net.HttpWebRequest объекта .

Содержимое HTTP-сообщения соответствует тексту сущности, определенной в RFC 2616.

Для содержимого HTTP можно использовать несколько классов. К ним относятся следующие.

  1. ByteArrayContent — содержимое HTTP на основе массива байтов.

  2. FormUrlEncodedContent — содержимое HTTP кортежей "имя-значение", закодированное с помощью типа MIME application/x-www-form-urlencoded.

  3. MultipartContent — содержимое HTTP, которое сериализуется с помощью спецификации типа содержимого multipart/*.

  4. MultipartFormDataContent — содержимое HTTP, закодированное с помощью типа MIME multipart/form-data.

  5. StreamContent — содержимое HTTP на основе потока.

  6. StringContent — содержимое HTTP на основе строки.

Если приложение, используюющее System.Net.Http пространства имен и System.Net.Http.Headers , собирается скачивать большие объемы данных (50 мб или более), приложение должно выполнять потоковую передачу этих загрузок и не использовать буферизацию по умолчанию. Если используется буферизация по умолчанию, использование памяти клиента будет очень большим, что может привести к значительному снижению производительности.

Классы в System.Net.Http пространствах имен и System.Net.Http.Headers можно использовать для разработки приложений Магазина Windows или классических приложений. При использовании в приложении Магазина Windows классы в System.Net.Http пространствах имен и System.Net.Http.Headers затрагиваются функцией сетевой изоляции, которая является частью модели безопасности приложений, используемой Windows 8. В манифесте приложения магазина Windows должны быть включены соответствующие сетевые возможности для системы, чтобы разрешить доступ к сети через приложение Магазина Windows. Дополнительные сведения см. в статье Сетевая изоляция для приложений Магазина Windows.

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