Прочитать на английском

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


WebRequest Класс

Определение

Выполняет запрос к универсальному идентификатору ресурса (URI). Это класс abstract.

public abstract class WebRequest
public abstract class WebRequest : MarshalByRefObject, System.Runtime.Serialization.ISerializable
[System.Serializable]
public abstract class WebRequest : MarshalByRefObject, System.Runtime.Serialization.ISerializable
Наследование
WebRequest
Наследование
Производный
Атрибуты
Реализации

Примеры

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

using System;
using System.IO;
using System.Net;
using System.Text;

namespace Examples.System.Net
{
    public class WebRequestGetExample
    {
        public static void Main ()
        {
            // Create a request for the URL. 		
            WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
            // If required by the server, set the credentials.
            request.Credentials = CredentialCache.DefaultCredentials;
            // Get the response.
            HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
            // Display the status.
            Console.WriteLine (response.StatusDescription);
            // Get the stream containing content returned by the server.
            Stream dataStream = response.GetResponseStream ();
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader (dataStream);
            // Read the content.
            string responseFromServer = reader.ReadToEnd ();
            // Display the content.
            Console.WriteLine (responseFromServer);
            // Cleanup the streams and the response.
            reader.Close ();
            dataStream.Close ();
            response.Close ();
        }
    }
}

Комментарии

Внимание!

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

WebRequest — базовый класс abstract. Модель запроса и ответа NET для доступа к данным из Интернета. Приложение, использующее модель запроса и ответа, может запрашивать данные из Интернета в не зависящем от протокола способе, в котором приложение работает с экземплярами класса WebRequest в то время как классы-потомки, относящиеся к протоколу, выполняют сведения о запросе.

Запросы отправляются из приложения в определенный универсальный код ресурса (URI), например веб-страницу на сервере. Универсальный код ресурса (URI) определяет соответствующий класс-потомок для создания из списка WebRequest потомков, зарегистрированных для приложения. WebRequest потомки обычно регистрируются для обработки определенного протокола, например HTTP или FTP, но могут быть зарегистрированы для обработки запроса к конкретному серверу или пути на сервере.

Класс WebRequest создает WebException при возникновении ошибок при доступе к интернет-ресурсу. Свойство Status является одним из значений WebExceptionStatus, указывающих источник ошибки. Если StatusWebExceptionStatus.ProtocolError, свойство Response содержит WebResponse, полученные из ресурса Интернета.

Так как класс WebRequest является классом abstract, фактическое поведение экземпляров WebRequest во время выполнения определяется классом-потомком, возвращаемым методом Create. Дополнительные сведения о значениях и исключениях по умолчанию см. в документации по классам-потомкам, таким как HttpWebRequest и FileWebRequest.

Примечание

Используйте метод Create для инициализации новых экземпляров WebRequest. Не используйте конструктор WebRequest.

Примечание

Если приложение, создающее объект WebRequest, запускается с учетными данными обычного пользователя, приложение не сможет получить доступ к сертификатам, установленным в локальном хранилище компьютеров, если пользователю не было явно предоставлено разрешение.

Примечания для тех, кто реализует этот метод

При наследовании от WebRequestнеобходимо переопределить следующие члены: Method, RequestUri, Headers, ContentLength, ContentType, Credentials, PreAuthenticate, GetRequestStream(), BeginGetRequestStream(AsyncCallback, Object), EndGetRequestStream(IAsyncResult), GetResponse(), BeginGetResponse(AsyncCallback, Object)и EndGetResponse(IAsyncResult). Кроме того, необходимо предоставить реализацию интерфейса IWebRequestCreate, который определяет метод Create(Uri), используемый при вызове Create(Uri). Необходимо зарегистрировать класс, реализующий интерфейс IWebRequestCreate, с помощью метода RegisterPrefix(String, IWebRequestCreate) или файла конфигурации.

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

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

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

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

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

Свойства

AuthenticationLevel

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

CachePolicy

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

ConnectionGroupName

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

ContentLength

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

ContentType

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

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

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

Credentials

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

DefaultCachePolicy

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

DefaultWebProxy

Возвращает или задает глобальный прокси-сервер HTTP.

Headers

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

ImpersonationLevel

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

Method

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

PreAuthenticate

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

Proxy

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

RequestUri

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

Timeout

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

UseDefaultCredentials

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

Методы

Abort()

Прерывает запрос.

BeginGetRequestStream(AsyncCallback, Object)

При переопределении в классе-потомке предоставляет асинхронную версию метода GetRequestStream().

BeginGetResponse(AsyncCallback, Object)

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

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

Инициализирует новый экземпляр WebRequest для указанной схемы URI.

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

Инициализирует новый экземпляр WebRequest для указанной схемы URI.

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

Инициализирует новый экземпляр WebRequest для указанной схемы URI.

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

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

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

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

CreateObjRef(Type)

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

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

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

EndGetResponse(IAsyncResult)

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

Equals(Object)

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

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

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

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

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

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

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

GetRequestStream()

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

GetRequestStreamAsync()

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

GetResponse()

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

GetResponseAsync()

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

GetSystemWebProxy()

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

GetType()

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

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

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

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

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

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

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

(Унаследовано от MarshalByRefObject)
RegisterPortableWebRequestCreator(IWebRequestCreate)
Устаревшие..

Зарегистрируйте объект IWebRequestCreate.

RegisterPrefix(String, IWebRequestCreate)

Регистрирует потомок WebRequest для указанного универсального кода ресурса (URI).

ToString()

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

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

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

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

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

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

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

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