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


WebRequest Класс

Определение

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

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

Примеры

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

#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Net;
using namespace System::Text;
int 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 = dynamic_cast<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 = gcnew 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();
}
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 ();
        }
    }
}
Imports System.IO
Imports System.Net
Imports System.Text

Namespace Examples.System.Net
    Public Class WebRequestGetExample

        Public Shared Sub Main()
            ' Create a request for the URL. 		
            Dim request As WebRequest = WebRequest.Create("http://www.contoso.com/default.html")
            ' If required by the server, set the credentials.
            request.Credentials = CredentialCache.DefaultCredentials
            ' Get the response.
            Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
            ' Display the status.
            Console.WriteLine(response.StatusDescription)
            ' Get the stream containing content returned by the server.
            Dim dataStream As Stream = response.GetResponseStream()
            ' Open the stream using a StreamReader for easy access.
            Dim reader As New StreamReader(dataStream)
            ' Read the content.
            Dim responseFromServer As String = reader.ReadToEnd()
            ' Display the content.
            Console.WriteLine(responseFromServer)
            ' Cleanup the streams and the response.
            reader.Close()
            dataStream.Close()
            response.Close()
        End Sub
    End Class
End Namespace

Комментарии

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

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.

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

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