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 код ресурса (URI 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 для отправки данных. EndGetRequestStream Методы BeginGetRequestStream предоставляют асинхронный доступ к потоку данных отправки.
Для проверки подлинности клиента с HttpWebRequestпомощью сертификата клиента необходимо установить в хранилище сертификатов My текущего пользователя.
Класс HttpWebRequest создает исключение WebException при возникновении ошибок при доступе к ресурсу. Свойство WebException.Status содержит WebExceptionStatus значение, указывающее источник ошибки. Когда WebException.Status это WebExceptionStatus.ProtocolErrorResponse свойство содержит полученное HttpWebResponse от ресурса значение.
HttpWebRequest предоставляет общие значения заголовков HTTP, отправленные в интернет-ресурс в качестве свойств, заданных методами или заданные системой; В следующей таблице содержится полный список. Другие заголовки в свойстве Headers можно задать как пары "имя-значение". Обратите внимание, что серверы и кэши могут изменять или добавлять заголовки во время запроса.
В следующей таблице перечислены заголовки HTTP, заданные свойствами или методами или системой.
| Заголовок | Откладывать |
|---|---|
Accept |
Задано свойством Accept . |
Connection |
Задано свойством, KeepAlive свойствомConnection. |
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.
Для приложений, использующих TLS/SSL через API, такие как HttpClient, HttpWebRequest, FTPClient, SmtpClient и SsStream, .NET блокирует небезопасные алгоритмы шифра и хэширования для подключений по умолчанию. Возможно, вам потребуется отказаться от этого поведения, чтобы обеспечить взаимодействие с существующими службами SSL3 ИЛИ службами TLS w/RC4. Не удается подключиться к серверу с помощью API ServicePointManager или SslStream после обновления до .NET Framework 4.6 объясняется, как изменить код, чтобы отключить это поведение при необходимости.
Конструкторы
| Имя | Описание |
|---|---|
| HttpWebRequest() |
Устаревшие..
Устаревшие..
Инициализирует новый экземпляр класса HttpWebRequest. Этот конструктор устарел. |
| HttpWebRequest(SerializationInfo, StreamingContext) |
Устаревшие..
Устаревшие..
Устаревшие..
Устаревшие..
Инициализирует новый экземпляр HttpWebRequest класса из указанных экземпляров SerializationInfo и StreamingContext классов. Этот конструктор устарел. |
Свойства
| Имя | Описание |
|---|---|
| Accept |
Возвращает или задает значение заголовка |
| Address |
Возвращает универсальный идентификатор ресурса (URI) ресурса Интернета, который фактически отвечает на запрос. |
| AllowAutoRedirect |
Возвращает или задает значение, указывающее, должен ли запрос следовать ответам перенаправления. |
| AllowReadStreamBuffering |
Возвращает или задает значение, указывающее, следует ли буферивировать полученный из интернет-ресурса. |
| AllowWriteStreamBuffering |
Возвращает или задает значение, указывающее, следует ли буферивировать данные, отправленные в интернет-ресурс. |
| AuthenticationLevel |
Возвращает или задает значения, указывающие уровень проверки подлинности и олицетворения, используемого для этого запроса. (Унаследовано от WebRequest) |
| AutomaticDecompression |
Возвращает или задает тип декомпрессии, который используется. |
| CachePolicy |
Возвращает или задает политику кэша для этого запроса. (Унаследовано от WebRequest) |
| ClientCertificates |
Возвращает или задает коллекцию сертификатов безопасности, связанных с этим запросом. |
| Connection |
Возвращает или задает значение заголовка |
| ConnectionGroupName |
Возвращает или задает имя группы подключений для запроса. |
| ContentLength |
Возвращает или задает |
| ContentType |
Возвращает или задает значение заголовка |
| ContinueDelegate |
Возвращает или задает метод делегата, вызываемого при получении ответа HTTP 100-continue из ресурса Интернета. |
| ContinueTimeout |
Получает или задает время ожидания (в миллисекундах), чтобы ждать, пока 100-Continue не будет получено от сервера. |
| CookieContainer |
Возвращает или задает файлы cookie, связанные с запросом. |
| CreatorInstance |
Устаревшие..
При переопределении в классе-потомке получает объект фабрики, производный от IWebRequestCreate класса, используемого для создания WebRequest экземпляра запроса к указанному URI. (Унаследовано от WebRequest) |
| Credentials |
Возвращает или задает сведения о проверке подлинности для запроса. |
| Date |
Возвращает или задает значение заголовка |
| DefaultCachePolicy |
Возвращает или задает политику кэша по умолчанию для этого запроса. |
| DefaultMaximumErrorResponseLength |
Возвращает или задает максимальную длину ответа на ошибку HTTP по умолчанию. |
| DefaultMaximumResponseHeadersLength |
Возвращает или задает значение по умолчанию для MaximumResponseHeadersLength свойства. |
| Expect |
Возвращает или задает значение заголовка |
| HaveResponse |
Возвращает значение, указывающее, получен ли ответ из интернет-ресурса. |
| Headers |
Указывает коллекцию пар name/value, составляющих заголовки HTTP. |
| Host |
Возвращает или задает значение заголовка узла для использования в HTTP-запросе, независимо от URI запроса. |
| IfModifiedSince |
Возвращает или задает значение заголовка |
| ImpersonationLevel |
Возвращает или задает уровень олицетворения для текущего запроса. (Унаследовано от WebRequest) |
| KeepAlive |
Возвращает или задает значение, указывающее, следует ли выполнять постоянное подключение к интернет-ресурсу. |
| MaximumAutomaticRedirections |
Возвращает или задает максимальное количество перенаправлений, которые следует запросу. |
| MaximumResponseHeadersLength |
Возвращает или задает максимальную допустимую длину заголовков ответа. |
| MediaType |
Возвращает или задает тип носителя запроса. |
| Method |
Возвращает или задает метод для запроса. |
| Pipelined |
Возвращает или задает значение, указывающее, следует ли конвейерировать запрос к интернет-ресурсу. |
| PreAuthenticate |
Возвращает или задает значение, указывающее, следует ли отправлять заголовок авторизации с запросом. |
| ProtocolVersion |
Возвращает или задает версию HTTP, используемую для запроса. |
| Proxy |
Возвращает или задает сведения о прокси-сервере для запроса. |
| Proxy |
При переопределении в классе-потомке получает или задает сетевой прокси-сервер для доступа к этому интернет-ресурсу. (Унаследовано от WebRequest) |
| ReadWriteTimeout |
Возвращает или задает время ожидания в миллисекундах при записи или чтении из потока. |
| Referer |
Возвращает или задает значение заголовка |
| RequestUri |
Возвращает исходный универсальный идентификатор ресурса (URI) запроса. |
| SendChunked |
Возвращает или задает значение, указывающее, следует ли отправлять данные в сегменты в интернет-ресурс. |
| ServerCertificateValidationCallback |
Возвращает или задает функцию обратного вызова для проверки сертификата сервера. |
| ServicePoint |
Возвращает точку обслуживания, используемую для запроса. |
| SupportsCookieContainer |
Возвращает значение, указывающее, предоставляет ли запрос поддержку CookieContainer. |
| Timeout |
Возвращает или задает значение времени ожидания в миллисекундах для GetResponse() методов и GetRequestStream() методов. |
| TransferEncoding |
Возвращает или задает значение заголовка |
| UnsafeAuthenticatedConnectionSharing |
Возвращает или задает значение, указывающее, разрешен ли общий доступ к высокоскоростным подключениям, прошедшим проверку подлинности NTLM. |
| UseDefaultCredentials |
Возвращает или задает Boolean значение, которое определяет, отправляются ли учетные данные по умолчанию с помощью запросов. |
| UserAgent |
Возвращает или задает значение заголовка |
Методы
| Имя | Описание |
|---|---|
| Abort() |
Отменяет запрос к интернет-ресурсу. |
| AddRange(Int32, Int32) |
Добавляет заголовок диапазона байтов в запрос для указанного диапазона. |
| AddRange(Int32) |
Добавляет заголовок диапазона байтов в запрос для определенного диапазона от начала или конца запрошенных данных. |
| AddRange(Int64, Int64) |
Добавляет заголовок диапазона байтов в запрос для указанного диапазона. |
| AddRange(Int64) |
Добавляет заголовок диапазона байтов в запрос для определенного диапазона от начала или конца запрошенных данных. |
| AddRange(String, Int32, Int32) |
Добавляет заголовок диапазона в запрос для указанного диапазона. |
| AddRange(String, Int32) |
Добавляет заголовок Range в запрос для определенного диапазона от начала или конца запрошенных данных. |
| AddRange(String, Int64, Int64) |
Добавляет заголовок диапазона в запрос для указанного диапазона. |
| AddRange(String, Int64) |
Добавляет заголовок Range в запрос для определенного диапазона от начала или конца запрошенных данных. |
| BeginGetRequestStream(AsyncCallback, Object) |
Начинает асинхронный запрос для объекта, используемого Stream для записи данных. |
| BeginGetResponse(AsyncCallback, Object) |
Начинает асинхронный запрос к интернет-ресурсу. |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| EndGetRequestStream(IAsyncResult, TransportContext) |
Завершает асинхронный запрос для объекта, используемого для Stream записи данных и выходных данных TransportContext , связанных с потоком. |
| EndGetRequestStream(IAsyncResult) |
Завершает асинхронный запрос для объекта, используемого Stream для записи данных. |
| EndGetResponse(IAsyncResult) |
Завершает асинхронный запрос к интернет-ресурсу. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Возвращает хэш-значение для экземпляра WebRequest . |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetLifetimeService() |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetObjectData(SerializationInfo, StreamingContext) |
Устаревшие..
Устаревшие..
Устаревшие..
Заполняет SerializationInfo данные, необходимые для сериализации целевого объекта. |
| GetRequestStream() |
Возвращает объект, используемый Stream для записи данных запроса. |
| GetRequestStream(TransportContext) |
Возвращает объект, используемый Stream для записи данных запроса и выходных данных TransportContext , связанных с потоком. |
| GetRequestStreamAsync() |
При переопределении в классе-потомке возвращает Stream данные для записи данных в интернет-ресурс в качестве асинхронной операции. (Унаследовано от WebRequest) |
| GetResponse() |
Возвращает ответ из ресурса Интернета. |
| GetResponseAsync() |
При переопределении в классе-потомке возвращает ответ на интернет-запрос в качестве асинхронной операции. (Унаследовано от WebRequest) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Устаревшие..
Устаревшие..
Устаревшие..
Заполняет SerializationInfo данные, необходимые для сериализации целевого объекта. |