HttpWebRequest Класс

Определение

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

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 для URI http://www.contoso.com/ .

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/")

Комментарии

Важно!

Мы не рекомендуем использовать HttpWebRequest для новой разработки. Вместо этого используйте System.Net.Http.HttpClient класс.

HttpWebRequestКласс обеспечивает поддержку свойств и методов, определенных в WebRequest и, для дополнительных свойств и методов, позволяющих пользователю напрямую взаимодействовать с серверами, ИСПОЛЬЗУЮЩИМИ протокол HTTP.

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

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

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

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

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

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

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

Header Задается
Accept Задается Accept свойством.
Connection Задается Connection свойством Property 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 класс использует параметры прокси-сервера, унаследованные от Internet Explorer на локальном компьютере. Если в Internet Explorer нет параметров прокси-сервера, запрос отправляется непосредственно на сервер.

HttpWebRequestКласс анализирует список обхода прокси-сервера с подстановочными знаками, унаследованными от Internet Explorer, и анализирует его напрямую с помощью Internet Explorer. Например, HttpWebRequest класс будет анализировать список пропусков "NT *" из Internet Explorer как регулярное выражение "NT. $". Это отличается от поведения Internet Explorer в собственном режиме. Поэтому URL-адрес " http://intxxxxx " будет обходить прокси-сервер с помощью HttpWebRequest класса, но не будет обходить прокси-сервер с помощью Internet Explorer.

Примечание

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

Примечание

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

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

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

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

HttpWebRequest()
Является устаревшей.
Является устаревшей.

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

HttpWebRequest(SerializationInfo, StreamingContext)
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

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

HttpWebRequest(Uri)

Свойства

Accept

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

Address

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

AllowAutoRedirect

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

AllowReadStreamBuffering

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

AllowWriteStreamBuffering

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

AuthenticationLevel

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

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

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

CachePolicy

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

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

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

Connection

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

ConnectionGroupName

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

ConnectionGroupName

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

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

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

ContentLength

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

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

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

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

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

HaveResponse

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

Headers

Указывает коллекцию пар "имя-значение", из которых создаются заголовки HTTP.

Host

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

IfModifiedSince

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

ImpersonationLevel

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

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

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

MaximumAutomaticRedirections

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

MaximumResponseHeadersLength

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

MediaType

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

Method

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

Pipelined

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

PreAuthenticate

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

PreAuthenticate

При переопределении во вложенном классе показывает, необходима ли предварительная проверка подлинности данного запроса.

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

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

Proxy

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

Proxy

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

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

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

Referer

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

RequestUri

Возвращает исходный код URI запроса.

SendChunked

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

ServerCertificateValidationCallback

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

ServicePoint

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

SupportsCookieContainer

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

Timeout

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

Timeout

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

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

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

UnsafeAuthenticatedConnectionSharing

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

UseDefaultCredentials

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

UseDefaultCredentials

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

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

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

Методы

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 данными, необходимыми для сериализации целевого объекта.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Если переопределено во вложенном классе, заполняет экземпляр SerializationInfo данными, которые необходимы для сериализации WebRequest.

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

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

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