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 для 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 Если объект ответа или поток ответа закрыт, оставшиеся данные будут аннулированы. Оставшиеся данные будут удалены, а сокет будет повторно использоваться для последующих запросов при закрытии объекта ответа или потока, если выполняются следующие условия: это запрос на поддержание активности или конвейер, необходимо получить только небольшой объем данных или получить оставшиеся данные за небольшой интервал времени. Если ни одно из указанных условий не удерживается или превышено время стока, сокет будет закрыт. Для поддержания активности или конвейерных подключений настоятельно рекомендуется, чтобы приложение считывало потоки до EOF. Это гарантирует, что сокет будет повторно использоваться для последующих запросов, что приведет к повышению производительности и уменьшению используемых ресурсов.
Если требуется отправить данные в ресурс, 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 , 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 |
Возвращает или задает значение HTTP-заголовка |
Address |
Возвращает код URI интернет-ресурса, который фактически отвечает на запрос. |
AllowAutoRedirect |
Возвращает или задает значение, которое указывает, должен ли запрос следовать ответам переадресации. |
AllowReadStreamBuffering |
Возвращает или задает значение, которое указывает, будет ли выполняться буферизация данных, полученных от интернет-ресурса. |
AllowWriteStreamBuffering |
Возвращает или задает значение, которое указывает, будет ли выполняться буферизация данных, отправляемых в интернет-ресурс. |
AuthenticationLevel |
Возвращает или задает значения, указывающие уровень проверки подлинности и олицетворения, используемые для этого запроса. (Унаследовано от WebRequest) |
AutomaticDecompression |
Возвращает или задает тип используемой распаковки. |
CachePolicy |
Возвращает или задает политику кэширования для этого запроса. (Унаследовано от WebRequest) |
ClientCertificates |
Возвращает или задает коллекцию сертификатов безопасности, связанных с данным запросом. |
Connection |
Возвращает или задает значение HTTP-заголовка |
ConnectionGroupName |
Возвращает или задает имя группы подключения для запроса. |
ConnectionGroupName |
Если переопределено во вложенном классе, возвращает или задает имя группы подключения для данного запроса. (Унаследовано от WebRequest) |
ContentLength |
Возвращает или задает заголовок HTTP |
ContentLength |
При переопределении во вложенный класс возвращает или задает длину содержимого запрошенных к передаче данных. (Унаследовано от WebRequest) |
ContentType |
Возвращает или задает значение HTTP-заголовка |
ContinueDelegate |
Возвращает или задает метод делегата, вызываемый при получении от интернет-ресурса HTTP-ответа 100-continue. |
ContinueTimeout |
Возвращает или задает время ожидания в миллисекундах до получения ответа 100-Continue с сервера. |
CookieContainer |
Возвращает или задает файлы cookie, связанные с запросом. |
CreatorInstance |
Устаревшие..
Если переопределено в производном классе, получает объект фабрики, производный от класса IWebRequestCreate, который служит для создания объекта WebRequest для создания запроса по указанному универсальному коду ресурса (URI). (Унаследовано от WebRequest) |
Credentials |
Возвращает или задает сведения о проверке подлинности для этого запроса. |
Date |
Получает или задает значение заголовка HTTP |
DefaultCachePolicy |
Возвращает или задает политику кэширования для этого запроса. |
DefaultMaximumErrorResponseLength |
Возвращает или задает наибольшую длину по умолчанию для ответа HTTP об ошибке. |
DefaultMaximumResponseHeadersLength |
Возвращает или задает значение по умолчанию для свойства MaximumResponseHeadersLength. |
Expect |
Возвращает или задает значение HTTP-заголовка |
HaveResponse |
Возвращает значение, показывающее, был ли получен ответ от интернет-ресурса. |
Headers |
Указывает коллекцию пар "имя-значение", из которых создаются заголовки HTTP. |
Host |
Получает или задает значение заголовка Host для использования в HTTP-запросе независимо от URI запроса. |
IfModifiedSince |
Возвращает или задает значение HTTP-заголовка |
ImpersonationLevel |
Возвращает или задает уровень олицетворения для текущего запроса. (Унаследовано от WebRequest) |
KeepAlive |
Возвращает или задает значение, указывающее, необходимо ли устанавливать постоянное подключение к интернет-ресурсу. |
MaximumAutomaticRedirections |
Возвращает или задает максимальное количество переадресаций, выполняемых запросом. |
MaximumResponseHeadersLength |
Возвращает или задает максимальную допустимую длину заголовков ответов. |
MediaType |
Возвращает или задает формат носителя запроса. |
Method |
Возвращает или задает метод для запроса. |
Pipelined |
Возвращает или задает значение, указывающее, выполняется ли конвейерная передача запроса в интернет-ресурс. |
PreAuthenticate |
Возвращает или задает значение, указывающее, следует ли отправлять заголовок авторизации вместе с запросом. |
PreAuthenticate |
При переопределении во вложенном классе показывает, необходима ли предварительная проверка подлинности данного запроса. (Унаследовано от WebRequest) |
ProtocolVersion |
Возвращает или задает версию HTTP-протокола, используемую для запроса. |
Proxy |
Возвращает или задает сведения о прокси-сервере для запроса. |
Proxy |
Если переопределено во вложенном классе, возвращает или задает сетевой прокси-сервер, используемый для доступа к данному интернет-ресурсу. (Унаследовано от WebRequest) |
ReadWriteTimeout |
Возвращает или задает время ожидания в миллисекундах при записи в поток или при чтении из него. |
Referer |
Возвращает или задает значение HTTP-заголовка |
RequestUri |
Возвращает исходный код URI запроса. |
SendChunked |
Возвращает или задает значение, которое указывает, будут ли отправляться данные в интернет-ресурс в виде сегментов. |
ServerCertificateValidationCallback |
Возвращает или задает функцию обратного вызова для проверки сертификата сервера. |
ServicePoint |
Возвращает точку обслуживания, используемую для запроса. |
SupportsCookieContainer |
Получает значение, которое указывает, поддерживает ли запрос CookieContainer. |
Timeout |
Возвращает или задает значение времени ожидания в миллисекундах для методов GetResponse() и GetRequestStream(). |
Timeout |
Возвращает или задает промежуток времени в миллисекундах до истечения срока действия запроса. (Унаследовано от WebRequest) |
TransferEncoding |
Возвращает или задает значение HTTP-заголовка |
UnsafeAuthenticatedConnectionSharing |
Возвращает или задает значение, указывающее, будет ли разрешено совместное использование высокоскоростного подключения с проверкой подлинности NTLM. |
UseDefaultCredentials |
Возвращает или задает значение Boolean, которое управляет отправкой учетных данных по умолчанию вместе с запросами. |
UseDefaultCredentials |
Если переопределено во вложенном классе, возвращает или задает значение Boolean, с помощью которого определяется, следует ли отправлять учетные данные DefaultCredentials вместе с запросами. (Унаследовано от WebRequest) |
UserAgent |
Возвращает или задает значение 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) |
Задает метаданные для исходящих запросов, которые будут использоваться в целях телеметрии. |
Применяется к
См. также раздел
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру