共用方式為


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

備註

謹慎

WebRequestHttpWebRequestServicePointWebClient 已經過時,您不應該將它們用於新的開發。 請改用 HttpClient

WebRequest 是 的 abstract 基類。NET 的要求/回應模型,用於從因特網存取數據。 使用要求/回應模型的應用程式可以透過通訊協議無關的方式向因特網要求數據,而應用程式會與 WebRequest 類別的實例搭配使用,而通訊協定特定的子系類別則執行要求的詳細數據。

要求會從應用程式傳送至特定的 URI,例如伺服器上的網頁。 URI 會決定適當的子代類別,以從為應用程式註冊的 WebRequest 子系列表建立。 WebRequest 子系通常會註冊以處理特定通訊協定,例如 HTTP 或 FTP,但可以註冊來處理對伺服器上特定伺服器或路徑的要求。

當存取因特網資源時發生錯誤時,WebRequest 類別會擲回 WebExceptionStatus 屬性是指出錯誤來源的其中一個 WebExceptionStatus 值。 當 StatusWebExceptionStatus.ProtocolError時,Response 屬性會包含從因特網資源接收的 WebResponse

由於 WebRequest 類別是 abstract 類別,因此運行時間 WebRequest 實例的實際行為是由 Create 方法所傳回的子代類別所決定。 如需預設值和例外狀況的詳細資訊,請參閱子代類別的檔,例如 HttpWebRequestFileWebRequest

注意

使用 Create 方法來初始化新的 WebRequest 實例。 請勿使用 WebRequest 建構函式。

注意

如果建立 WebRequest 物件的應用程式會以 Normal 使用者的認證執行,除非已明確授與使用者許可權,否則應用程式將無法存取本機電腦存放區中安裝的憑證。

給實施者的注意事項

當您繼承自 WebRequest時,必須覆寫下列成員:MethodRequestUriHeadersContentLengthContentTypeCredentialsPreAuthenticateGetRequestStream()BeginGetRequestStream(AsyncCallback, Object)EndGetRequestStream(IAsyncResult)GetResponse()BeginGetResponse(AsyncCallback, Object)EndGetResponse(IAsyncResult)。 此外,您必須提供 IWebRequestCreate 介面的實作,以定義呼叫 Create(Uri)時所使用的 Create(Uri) 方法。 您必須使用 RegisterPrefix(String, IWebRequestCreate) 方法或組態檔,註冊實作 IWebRequestCreate 介面的類別。

建構函式

WebRequest()
已淘汰.

初始化 WebRequest 類別的新實例。

WebRequest(SerializationInfo, StreamingContext)
已淘汰.

SerializationInfoStreamingContext 類別的指定實例,初始化 WebRequest 類別的新實例。

屬性

AuthenticationLevel

取得或設定值,指出用於這個要求的驗證和模擬層級。

CachePolicy

取得或設定這個要求的快取原則。

ConnectionGroupName

在子代類別中覆寫時,取得或設定要求的連接群組名稱。

ContentLength

在子代類別中覆寫時,取得或設定所傳送要求數據的內容長度。

ContentType

在子代類別中覆寫時,取得或設定所傳送之要求數據的內容類型。

CreatorInstance
已淘汰.

在子代類別中覆寫時,取得衍生自用來建立 WebRequest 具現化之要求至指定 URI IWebRequestCreate 類別的 Factory 物件。

Credentials

在子代類別中覆寫時,取得或設定用來向因特網資源驗證要求的網路認證。

DefaultCachePolicy

取得或設定這個要求的預設快取原則。

DefaultWebProxy

取得或設定全域 HTTP Proxy。

Headers

在子代類別中覆寫時,取得或設定與要求相關聯的標頭名稱/值組集合。

ImpersonationLevel

取得或設定目前要求的模擬層級。

Method

在子代類別中覆寫時,取得或設定要用於這個要求的通訊協定方法。

PreAuthenticate

在子系類別中覆寫時,指出是否要預先驗證要求。

Proxy

在子代類別中覆寫時,取得或設定用來存取此因特網資源的網路 Proxy。

RequestUri

在子代類別中覆寫時,取得與要求相關聯的因特網資源 URI。

Timeout

取得或設定要求逾時之前的時間長度,以毫秒為單位。

UseDefaultCredentials

在子代類別中覆寫時,取得或設定 Boolean 值,控制是否以要求傳送 DefaultCredentials

方法

Abort()

中止要求。

BeginGetRequestStream(AsyncCallback, Object)

在子系類別中覆寫時,提供異步版本的 GetRequestStream() 方法。

BeginGetResponse(AsyncCallback, Object)

在子代類別中覆寫時,開始因特網資源的異步要求。

Create(String)
已淘汰.

初始化指定 URI 配置的新 WebRequest 實例。

Create(Uri)
已淘汰.

初始化指定 URI 配置的新 WebRequest 實例。

CreateDefault(Uri)
已淘汰.

初始化指定 URI 配置的新 WebRequest 實例。

CreateHttp(String)
已淘汰.

初始化指定 URI 字串的新 HttpWebRequest 實例。

CreateHttp(Uri)
已淘汰.

初始化指定 URI 的新 HttpWebRequest 實例。

CreateObjRef(Type)

建立物件,其中包含產生用來與遠端物件通訊之 Proxy 所需的所有相關信息。

(繼承來源 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()

傳回使用目前模擬使用者的因特網選項設定所設定的 Proxy。

GetType()

取得目前實例的 Type

(繼承來源 Object)
InitializeLifetimeService()
已淘汰.

取得存留期服務物件,以控制這個實例的存留期原則。

(繼承來源 MarshalByRefObject)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立目前 MarshalByRefObject 對象的淺層複本。

(繼承來源 MarshalByRefObject)
RegisterPortableWebRequestCreator(IWebRequestCreate)
已淘汰.

註冊 IWebRequestCreate 物件。

RegisterPrefix(String, IWebRequestCreate)

為指定的 URI 註冊 WebRequest 子系。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

明確介面實作

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
已淘汰.

在子代類別中覆寫時,以串行化 WebRequest所需的數據填入 SerializationInfo 實例。

適用於

另請參閱