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


HttpWebRequest Класс

Определение

Предоставляет реализацию класса WebRequest, зависят от HTTP.

public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
    inherit WebRequest
type HttpWebRequest = class
    inherit WebRequest
    interface ISerializable
[<System.Serializable>]
type HttpWebRequest = class
    inherit WebRequest
    interface ISerializable
Public Class HttpWebRequest
Inherits WebRequest
Public Class HttpWebRequest
Inherits WebRequest
Implements ISerializable
Наследование
HttpWebRequest
Наследование
Атрибуты
Реализации

Примеры

В следующем примере кода создается HttpWebRequest для http://www.contoso.com/URI.

HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/" ));

HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");

Dim myReq As HttpWebRequest = _
    WebRequest.Create("http://www.contoso.com/")

Комментарии

Осторожность

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

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

Не используйте конструктор HttpWebRequest. Используйте метод WebRequest.Create для инициализации новых объектов HttpWebRequest. Если схема универсального идентификатора ресурса (URI) http:// или https://, Create возвращает объект HttpWebRequest.

Метод GetResponse выполняет синхронный запрос к ресурсу, указанному в свойстве RequestUri, и возвращает HttpWebResponse, содержащий объект ответа. Данные ответа можно получить с помощью потока, возвращаемого GetResponseStream. Если объект ответа или поток ответа закрыт, остальные данные будут отключены. Остальные данные будут удалены, и сокет будет повторно использоваться для последующих запросов при закрытии объекта ответа или потока, если хранятся следующие условия: это запрос на сохранение или конвейер, только небольшой объем данных необходимо получить, или остальные данные получаются в небольшой интервал времени. Если ни одно из упомянутых условий не задерживается или время очистки не превышается, сокет будет закрыт. Для поддержания работоспособности или конвейерных подключений настоятельно рекомендуется, чтобы приложение считывало потоки до EOF. Это гарантирует, что сокет будет повторно использоваться для последующих запросов, что приводит к повышению производительности и меньшему использованию ресурсов.

При отправке данных в ресурс метод GetRequestStream возвращает объект Stream для отправки данных. Методы BeginGetRequestStream и EndGetRequestStream предоставляют асинхронный доступ к потоку данных отправки.

Для проверки подлинности клиента с HttpWebRequestсертификат клиента должен быть установлен в хранилище сертификатов My текущего пользователя.

Класс HttpWebRequest создает WebException при возникновении ошибок при доступе к ресурсу. Свойство WebException.Status содержит значение WebExceptionStatus, указывающее источник ошибки. Если WebException.StatusWebExceptionStatus.ProtocolError, свойство Response содержит HttpWebResponse, полученные от ресурса.

HttpWebRequest предоставляет общие значения заголовков HTTP, отправленные в интернет-ресурс в качестве свойств, заданных методами или заданными системой; В следующей таблице содержится полный список. Вы можете задать другие заголовки в свойстве Headers в качестве пар "имя-значение". Обратите внимание, что серверы и кэши могут изменять или добавлять заголовки во время запроса.

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

Заголовок Откладывать
Accept Задано свойством Accept.
Connection Задано свойством Connection, KeepAlive свойством.
Content-Length Задано свойством ContentLength.
Content-Type Задано свойством ContentType.
Expect Задано свойством Expect.
Date Устанавливается системой на текущую дату.
Host Задайте системе текущие сведения о узле.
If-Modified-Since Задано свойством IfModifiedSince.
Range Задает метод AddRange.
Referer Задано свойством Referer.
Transfer-Encoding Задано свойством TransferEncoding (свойство SendChunked должно быть true).
User-Agent Задано свойством UserAgent.

Заметка

HttpWebRequest регистрируется автоматически. Вам не нужно вызывать метод RegisterPrefix для регистрации System.Net.HttpWebRequest перед использованием URI, начиная с http:// или https://.

Локальный компьютер или файл конфигурации приложения может указать, что используется прокси-сервер по умолчанию. Если задано свойство Proxy, параметры прокси-сервера из свойства Proxy переопределяют локальный компьютер или файл конфигурации приложения, а экземпляр HttpWebRequest будет использовать указанные параметры прокси-сервера. Если прокси-сервер не указан в файле конфигурации, а свойство Proxy не указано, класс HttpWebRequest использует параметры прокси-сервера, унаследованные от параметров Интернета на локальном компьютере. Если в параметрах Интернета нет параметров прокси-сервера, запрос отправляется непосредственно серверу.

Заметка

Платформа кэширует сеансы SSL по мере их создания и пытается повторно использовать кэшированный сеанс для нового запроса, если это возможно. При попытке повторного использования сеанса SSL платформа использует первый элемент ClientCertificates (если есть один), или пытается повторно использовать анонимные сеансы, если ClientCertificates пуст.

Заметка

По соображениям безопасности файлы cookie отключены по умолчанию. Если вы хотите использовать файлы cookie, используйте свойство CookieContainer для включения файлов cookie.

Платформа .NET Framework 4.6 включает в себя новую функцию безопасности, которая блокирует небезопасные алгоритмы шифра и хэширования для подключений. Приложения, использующие TLS/SSL с помощью API, таких как HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream и т. д. и предназначенные для .NET Framework 4.6 по умолчанию получают более безопасное поведение.

Разработчики могут отказаться от этого поведения, чтобы обеспечить взаимодействие со своими существующими службами SSL3 ИЛИ службами TLS w/RC4. этой статье объясняется, как изменить код таким образом, чтобы новое поведение было отключено.

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

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

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

HttpWebRequest(SerializationInfo, StreamingContext)
Устаревшие..
Устаревшие..
Устаревшие..
Устаревшие..

Инициализирует новый экземпляр класса HttpWebRequest из указанных экземпляров классов SerializationInfo и StreamingContext. Этот конструктор устарел.

Свойства

Accept

Возвращает или задает значение заголовка Accept HTTP.

Address

Возвращает универсальный идентификатор ресурса (URI) ресурса Интернета, который фактически отвечает на запрос.

AllowAutoRedirect

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

AllowReadStreamBuffering

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

AllowWriteStreamBuffering

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

AuthenticationLevel

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

(Унаследовано от WebRequest)
AutomaticDecompression

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

CachePolicy

Возвращает или задает политику кэша для этого запроса.

(Унаследовано от WebRequest)
ClientCertificates

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

Connection

Возвращает или задает значение заголовка Connection HTTP.

ConnectionGroupName

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

ConnectionGroupName

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

(Унаследовано от WebRequest)
ContentLength

Возвращает или задает заголовок HTTP Content-length.

ContentLength

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

(Унаследовано от WebRequest)
ContentType

Возвращает или задает значение заголовка Content-type HTTP.

ContinueDelegate

Возвращает или задает метод делегата, вызываемого при получении ответа HTTP 100-continue из ресурса Интернета.

ContinueTimeout

Получает или задает время ожидания (в миллисекундах), чтобы ждать, пока 100-Continue не будет получено от сервера.

CookieContainer

Возвращает или задает файлы cookie, связанные с запросом.

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

При переопределении в классе-потомке получает объект фабрики, производный от класса IWebRequestCreate, используемого для создания экземпляра WebRequest для создания запроса к указанному URI.

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

Возвращает или задает сведения о проверке подлинности для запроса.

Date

Возвращает или задает значение заголовка HTTP Date, используемое в HTTP-запросе.

DefaultCachePolicy

Возвращает или задает политику кэша по умолчанию для этого запроса.

DefaultMaximumErrorResponseLength

Возвращает или задает максимальную длину ответа на ошибку HTTP по умолчанию.

DefaultMaximumResponseHeadersLength

Возвращает или задает значение по умолчанию для свойства MaximumResponseHeadersLength.

Expect

Возвращает или задает значение заголовка Expect HTTP.

HaveResponse

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

Headers

Указывает коллекцию пар name/value, составляющих заголовки HTTP.

Host

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

IfModifiedSince

Возвращает или задает значение заголовка If-Modified-Since HTTP.

ImpersonationLevel

Возвращает или задает уровень олицетворения для текущего запроса.

(Унаследовано от WebRequest)
KeepAlive

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

MaximumAutomaticRedirections

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

MaximumResponseHeadersLength

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

MediaType

Возвращает или задает тип носителя запроса.

Method

Возвращает или задает метод для запроса.

Pipelined

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

PreAuthenticate

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

PreAuthenticate

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

(Унаследовано от WebRequest)
ProtocolVersion

Возвращает или задает версию HTTP, используемую для запроса.

Proxy

Возвращает или задает сведения о прокси-сервере для запроса.

Proxy

При переопределении в классе-потомке получает или задает сетевой прокси-сервер для доступа к этому интернет-ресурсу.

(Унаследовано от WebRequest)
ReadWriteTimeout

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

Referer

Возвращает или задает значение заголовка Referer HTTP.

RequestUri

Возвращает исходный универсальный идентификатор ресурса (URI) запроса.

SendChunked

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

ServerCertificateValidationCallback

Возвращает или задает функцию обратного вызова для проверки сертификата сервера.

ServicePoint

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

SupportsCookieContainer

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

Timeout

Возвращает или задает значение времени ожидания в миллисекундах для методов GetResponse() и GetRequestStream().

Timeout

Возвращает или задает длительность времени в миллисекундах до истечения времени ожидания запроса.

(Унаследовано от WebRequest)
TransferEncoding

Возвращает или задает значение заголовка Transfer-encoding HTTP.

UnsafeAuthenticatedConnectionSharing

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

UseDefaultCredentials

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

UseDefaultCredentials

При переопределении в классе-потомке получает или задает значение Boolean, которое определяет, отправляются ли DefaultCredentials с запросами.

(Унаследовано от WebRequest)
UserAgent

Возвращает или задает значение заголовка User-agent HTTP.

Методы

Abort()

Отменяет запрос к интернет-ресурсу.

AddRange(Int32)

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

AddRange(Int32, Int32)

Добавляет заголовок диапазона байтов в запрос для указанного диапазона.

AddRange(Int64)

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

AddRange(Int64, Int64)

Добавляет заголовок диапазона байтов в запрос для указанного диапазона.

AddRange(String, Int32)

Добавляет заголовок Range в запрос для определенного диапазона от начала или конца запрошенных данных.

AddRange(String, Int32, Int32)

Добавляет заголовок диапазона в запрос для указанного диапазона.

AddRange(String, Int64)

Добавляет заголовок Range в запрос для определенного диапазона от начала или конца запрошенных данных.

AddRange(String, Int64, Int64)

Добавляет заголовок диапазона в запрос для указанного диапазона.

BeginGetRequestStream(AsyncCallback, Object)

Начинает асинхронный запрос для объекта Stream, используемого для записи данных.

BeginGetResponse(AsyncCallback, Object)

Начинает асинхронный запрос к интернет-ресурсу.

CreateObjRef(Type)

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

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

Завершает асинхронный запрос для объекта Stream, используемого для записи данных.

EndGetRequestStream(IAsyncResult, TransportContext)

Завершает асинхронный запрос для объекта Stream, используемого для записи данных и вывода TransportContext, связанной с потоком.

EndGetResponse(IAsyncResult)

Завершает асинхронный запрос к интернет-ресурсу.

Equals(Object)

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

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

Возвращает хэш-значение для экземпляра WebRequest.

GetHashCode()

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

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

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

(Унаследовано от MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Устаревшие..
Устаревшие..
Устаревшие..

Заполняет SerializationInfo данными, необходимыми для сериализации целевого объекта.

GetObjectData(SerializationInfo, StreamingContext)
Устаревшие..

Заполняет SerializationInfo данными, необходимыми для сериализации целевого объекта.

(Унаследовано от WebRequest)
GetRequestStream()

Возвращает объект Stream для записи данных запроса.

GetRequestStream()

При переопределении в классе-потомке возвращает Stream для записи данных в интернет-ресурс.

(Унаследовано от WebRequest)
GetRequestStream(TransportContext)

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

GetRequestStreamAsync()

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

(Унаследовано от WebRequest)
GetResponse()

Возвращает ответ из ресурса Интернета.

GetResponse()

При переопределении в классе-потомке возвращает ответ на интернет-запрос.

(Унаследовано от WebRequest)
GetResponseAsync()

При переопределении в классе-потомке возвращает ответ на интернет-запрос в качестве асинхронной операции.

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

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

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

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

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

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

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

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

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

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

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

Явные реализации интерфейса

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
Устаревшие..
Устаревшие..
Устаревшие..

Заполняет SerializationInfo данными, необходимыми для сериализации целевого объекта.

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

GetRequestMetadata(HttpWebRequest)

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

SetRequestMetadata(HttpWebRequest, RequestMetadata)

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

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

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